有人能清楚地解释一下provide()在视图中是如何工作的吗?我读过官方文档,但真正困扰我的是,如果我在模板的开头定义
<% provide(:title, 'Help') %>然后我有了这行代码
<%= yield :title %> 幕后到底发生了什么?我知道yield应该调用代码块。在这种情况下,什么是代码块?
发布于 2013-07-04 05:19:40
provide将标记块存储在标识符中以供以后使用。在本例中,在符号:title中使用'Help‘。provide被封装在<% %>中,表示它正在执行此代码,而不是在视图中打印输出。
在本例中,yield只是将该代码块吐出来。收益率被封装在<%= %>中,以指示它正被打印到视图中。
可以将其视为设置一个变量并打印出一个变量。
有关详情,请参阅:http://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-provide。请注意,provide实际上是content_for的包装器,所以这就是该链接中的优点所在。
https://stackoverflow.com/questions/17457985
复制相似问题