rails partial's layouts with named yield - why is yield block never used?

У меня есть partial, с макетом:

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

В макете (page.html.erb) есть выходы для различных блоков, например:

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

Однако, этот блок выхода никогда не используется, в то время как файл макета главного уровня делает выход, как и следовало ожидать.

Невозможно ли использовать именованные блоки content_for/yield в макетах partials? Есть ли обходные пути?

Я бы ожидал, что наследование-- content_for :header должен сначала искать yield :header в макете частичной части, а если это не удается, то в основном файле макета. Но это не так. Заголовок yield :header в частичном макете просто игнорируется.

12
задан Michael Durrant 25 September 2011 в 23:05
поделиться