我正在 http://guides.rubyonrails.org/layouts_and_rendering.html 遵循本教程,并尝试将标头div与其他HTML模板分开。
我从我的应用程序/视图/主页/索引.html.erb 文件中取出了一个div 并将其替换为
<%= yield :head %>
然后我在/app/views/layouts 目录中制作了一个名为 head.html.erb 的文件,并将该div 放在那里。 然后我把这段代码放在div 周围:
<% content_for :head do %>
<% end %>
但它不起作用,并且不会显示标题div。 我哪里做错了?我认为存在路径和目录不匹配,但我不确定如何匹配它们。
谢谢!
布局是放置yield
调用的位置,每个视图的模板是放置content_for
块的位置。你可能希望在应用程序的主布局文件中调用yield
。
所以app/views/layouts/application.html.erb
把它放在你想要的地方:
<div id="my_header_div">
<%= yield :head %>
</div>
然后,在每个视图中,您可以执行以下操作:
<% content_for :head do %>
<h1>My Header!</h1>
<% end %>
它将插入布局文件的div 内。
你应该把这个:
<%= yield :head %>
在布局文件中
如果您的head
布局不是针对您的特定操作的布局content_for :head
将永远不起作用