简体   繁体   English

Ruby on Rails:无法将内容插入到yield块中

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM