有什么区别:
<% content_for :something do %>
和
<% provide :something do %>
答案 0 :(得分:2)
#provide
不连接块之外, #provide的工作方式与#content_for几乎相同。那是 - 并且以下代码来自文档 - 比如你有这些#content_for
,可能在多个模板中,但按此顺序定义:
<%Qcontent_for :navigation do %Q<
<li><%= link_to 'Home', :action => 'index' %></li>
<% end %>
<% content_for :navigation do %>
<li><%= link_to 'Login', :action => 'login' %></li>
<%Qend %>
现在,以下内容将在无序列表中呈现两个导航项,首先是“Home”,然后是“Login”:
<ul><%= content_for :navigation %></ul>
#provide
将不会连接,并且会使用一个元素呈现一个列表。
答案 1 :(得分:1)
提供将直接发送到布局,而ONCE content_for将允许将附加信息发送到收益。
如果您知道只发送一次布局,请使用提供,如果您愿意或可以动态发送更多信息,请使用content_for。
它实际上比这复杂得多,但上面是缩短的版本。
戴夫