我正在关注本教程http://guides.rubyonrails.org/layouts_and_rendering.html,并试图将标题div与其他HTML模板分开。
我从app / views / home / index.html.erb文件中删除了一个div并将其替换为
<%= yield :head %>
然后我在/ app / views / layouts目录中创建了一个名为head.html.erb的文件,并将该div放在那里。然后我把这个代码放在div:
<% content_for :head do %>
<% end %>
但它不起作用,标题div不会显示。我哪里做错了?我认为路径和目录不匹配,但我不确定如何匹配它们。
谢谢!
答案 0 :(得分:3)
您的布局是放置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内部。
答案 1 :(得分:1)
你应该把这个:
<%= yield :head %>
布局文件中的
如果您的head
布局不是特定操作的布局content_for :head
将永远无效