让Ruby on Rails在UI层工作时遇到麻烦



我正在 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将永远不起作用

相关内容

  • 没有找到相关文章

最新更新