provide()
任何人都可以对视图内部的工作方式给出明确的解释吗?我已经阅读了官方文档,但真正困扰我的是,如果我在模板的开头定义
<% provide(:title, 'Help') %>
然后我有这行代码
<%= yield :title %>
后台到底发生了什么?我知道 yield 应该调用代码块。在这种情况下,代码块是什么?
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
所以这就是该链接中好东西所在的地方。