【发布时间】:2011-09-19 09:16:44
【问题描述】:
我正在使用 Rails 2.3.8 应用程序。我有一个布局文件,其中包含<%= yield :head %>
我在应用程序的不同部分调用了以下代码:<% content_for :head do %><meta name="keywords" content="" /><% end %>
我尝试将该代码添加到视图文件home 中,它起作用了。我从 home 调用的 _abc 调用它也可以通过在 head 部分添加 meta 代码按预期工作。但是当我在部分_def 中添加代码时,该代码是从_abc 调用的,而home 是从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 %>
非常感谢
【问题讨论】:
-
这是否意味着您有 content_for :head 两次(即一次在 _abc 和 _def 中)都在争夺位置?如果是这样 - 不足为奇,它只会选择一个或感到困惑。否则 - 你能澄清一下吗?谢谢
-
或许你可以把每个文件的相关内容贴出来,帮助我们了解你想要达到的目标?
-
@Taryn 不,我一次只将该代码放在一个地方。
标签: ruby-on-rails layout views render partials