Rails渲染content_for不适用于partials

时间:2011-06-21 09:52:45

标签: ruby-on-rails layout views render partials

我使用的是Rails 2.3.8应用程序。我有一个包含
的布局文件 <%= yield :head %>

我在应用程序的不同部分调用了以下代码:
<% content_for :head do %>
<meta name="keywords" content="" />
<% end %>

我尝试在视图文件home中添加该代码。我从_abc调用的home调用了它,它通过在meta部分添加head代码也按预期工作。但是,当我从_def调用_abc调用的部分home中添加代码时,meta标记未显示!!!

我没有理解发生了什么......以及如何绕过这个问题

更新:无效的案例是:

home.html.erb:
<%= render :partial=>"_abc"%>

_abc.html.erb:
<%= render :partial=>"_def"%>

_def.html.erb:
<% content_for :head do %>
<meta name="keywords" content="" />
<% end %>

非常感谢

1 个答案:

答案 0 :(得分:2)

这是一个老问题,但我遇到了类似的问题。想想我发布我的问题/解决方案以防其他人来到这里。

哪个档案是&lt;%= yield:head%&gt;在?我遇到了这个问题,结果证明我的收益是在“/layouts/application.html.erb”文件中......但是被调用的视图使用了不同的布局文件,即“/layouts/listings.html.erb”。一旦我将产量移到正确的文件中,一切都运行良好,我的描述与你描述的设置完全相同。