任何人都可以对provide()在视图内部的工作方式给出清晰的解释吗?我已经阅读了官方文档,但是真正困扰我的是如果我在模板开头定义的内容

<% provide(:title, 'Help') %>


然后我有这行代码

<%= yield :title %>


后台真正发生了什么?我知道yield应该调用代码块。在这种情况下,什么是代码块?

最佳答案

provide将标记块存储在标识符中,以备后用。在这种情况下,请在符号:title中使用“帮助”。提供包含在<% %>中,指示它正在执行此代码且未在视图中打印出来。

在这种情况下,yield只是将其吐出而被阻止。产量包含在<%= %>中,以指示它已被打印到视图中。

将其视为设置变量并打印出变量。

参见:http://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-provide
想要查询更多的信息。请注意,provide实际上是content_for的包装,因此,该链接中的好地方就在这里。

关于ruby-on-rails - 在模板内产生并提供(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17457985/

10-13 02:08