12

我有一个部分的布局:

<%= render :partial => 'home/mobile/home', :layout => 'home/mobile/page', :locals => {:page => 'abc2'}%>

布局(page.html.erb)具有不同块的产量,例如:

<div data-role="header">
  <%= yield :header %>
</div>

然而,这个 yield 块从来没有被使用过,而 main-level 布局文件确实像预期的那样产生了。

是否不可能将命名的 content_for/yield 块与局部布局一起使用?有解决方法吗?

我希望继承—— content_for :header 应该首先在部分布局中寻找一个 yield :header ,如果没有找到主要布局文件。但这种情况并非如此。部分布局的 yield :header 被简单地忽略了。

4

2 回答 2

5

在与您类似的情况下,我将 the 替换为无阻塞yield的调用content_for。因此,在您的示例中,它很简单:

<div data-role="header">
  <%= content_for :header %>
</div>

这对我有用。s in partials 不会像您建议的那样滴落下来,这yield可能是一个特性或一个错误——但这似乎仍然是它在 Rails 4.1.8 中的工作方式,3 年后:)

于 2014-11-20T19:03:21.723 回答
0

解决方法是使用块(应该能够正确生成)将您的布局包装到一个辅助方法中。

您可能想提交有关原始问题的错误。

于 2011-09-25T20:41:01.697 回答