有人能清楚解释provide()
在视图中的运作方式吗?我已经阅读了官方文档,但如果我在模板的开头定义
<% provide(:title, 'Help') %>
然后我有这行代码
<%= yield :title %>
后台真的发生了什么?我知道yield应该调用代码块。在这种情况下代码块会是什么?
答案 0 :(得分:41)
provide
将标记块存储在标识符中供以后使用。在这种情况下,符号中的“帮助”:标题。提供内容包含在<% %>
中,表示它正在执行此代码,而不是在视图中打印出来。
yield
只会吐出阻止退出的内容。收益率包含在<%= %>
中,表示它正在打印到视图中。
将其视为设置变量并打印出变量。
请参阅:http://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-provide
欲获得更多信息。请注意,provide
实际上是content_for
的包装器,因此该链接中的好东西就在这里。