rails部分的布局与命名的yield - 为什么yield块从未使用过?

时间:2011-09-25 18:45:52

标签: ruby-on-rails layout partials content-for

我有部分,有布局:

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

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

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

但是,从不使用此yield块,而主级布局文件确实按预期产生。

使用部分布局命名的content_for / yield块是不是不可能?有变通方法吗?

我希望继承 - content_for:header应首先在partial的布局中查找yield:标头,并且失败,即主布局文件。但这种情况并非如此。部分布局的yield:标头只是被忽略了。

2 个答案:

答案 0 :(得分:3)

在与您类似的情况下,我通过调用yield替换content_for而没有阻止。所以在你的例子中它只是:

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

这对我有用。部分中的yield并没有像你建议的那样涓涓细流可能是一个特征或一个错误 - 但这似乎仍然是它在Rails 4.1.8中的工作方式,3年后的下线:)

答案 1 :(得分:0)

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

您可能希望填写有关原始问题的错误。