【问题标题】:Rails rendering content_for not working for partialsRails 渲染 content_for 不适用于局部
【发布时间】: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


【解决方案1】:

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

在哪个文件中?我遇到了这个问题,结果我的产量在“/layouts/application.html.erb”文件中......但是被调用的视图使用了不同的布局文件,即“/layouts/listings.html.erb”。一旦我将产量移到正确的文件中,一切正常,并且我的设置与您描述的几乎相同。

【讨论】:

    猜你喜欢
    • 2017-06-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-16
    • 2020-03-08
    • 1970-01-01
    • 2015-12-16
    • 2016-11-12
    • 2018-04-17
    相关资源
    最近更新 更多