任何人都可以对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/