[英]Ruby on Rails: Can't insert content into yield block
I have a partial called _main_nav.html.erb
in views/layout folder, this is content file: 我在views / layout文件夹中有一个名为
_main_nav.html.erb
的部分,这是内容文件:
<% content_for :main_navigation do %>
<h1>Something must here</h1>
<% end %>
In my _header.html.erb
file, i used yield
to insert content: 在我的
_header.html.erb
文件中,我使用yield
来插入内容:
...
<%= yield :main_navigation %>
<nav id="utility" class="nav-collapse">
...
But when i visit home page, it does'n appear h1 element, i have wrong somewhere? 但是当我访问主页时,它确实没有出现h1元素,我在某处出错了?
The issue is that you are trying to yield content from a view that isn't currently being rendered. 问题是您正在尝试从当前未呈现的视图中生成内容。
You would need to do: 你需要这样做:
_header.html.erb _header.html.erb
...
<%= render "layouts/main_nav" %>
<%= yield :main_navigation %>
<nav id="utility" class="nav-collapse">
...
_main_nav.html.erb _main_nav.html.erb
<% content_for :main_navigation do %>
<h1>Something must here</h1>
<% end %>
http://guides.rubyonrails.org/layouts_and_rendering.html#understanding-yield http://guides.rubyonrails.org/layouts_and_rendering.html#understanding-yield
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.