2011-09-25 10 views
11

Iレイアウトと、部分を有する:指定された歩留まりでのレールパーシャルのレイアウト - 歩留まりブロックが使われていないのはなぜですか?

<%= 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ブロックをpartialのレイアウトに使用することはできませんか?回避策はありますか?

私は、inheritance_content_for:ヘッダーは、最初にpartialのレイアウトのyield:ヘッダーを探し、メインレイアウトファイルに失敗することが予想されます。しかし、そうではありません。部分レイアウトのyield:ヘッダは単に無視されます。

答えて

0

回避策は、blocks(正しい結果が得られるはずです)を使用してヘルパーメソッドにレイアウトをラップすることです。

元の問題についてバグを報告したい場合があります。

+0

レールを使って作業するにはちょっとハックする必要があります3 – numbers1311407

2

あなたと似たような状況では、yieldをブロックなしでcontent_forに変更しました。だからあなたの例では、単純になります:

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

これは私のために働いた。その部分のyieldは、機能やバグがあるかもしれないと示唆しているように細流化しませんが、それでも3年後のRails 4.1.8での動作と思われます。

関連する問題