2009-04-12 7 views
12

私はレールが新しく、ネストされたレイアウトを動作させる方法を工夫しています。私は彼らが.netのマスターページのようなものだと仮定していますか?ルビーのネストされたレイアウト

私はthis guideを追っていると私はこれが含まれている私のレイアウトディレクトリ内のapplication.erb.html作成しました:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
     "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
<head> 
    <meta http-equiv="content-type" content="text/html;charset=UTF-8" /> 
    <title><%= @page_title or 'Page Title' %></title> 
    <%= stylesheet_link_tag 'layout' %> 
    <style type="text/css"><%= yield :stylesheets %></style> 
</head> 
<body> 

<%= yield(:content) or yield %> 

</body> 
</html> 

をし、これに私の既存のレイアウトのいずれかを変更した:

<% content_for :stylesheets do %> 

<% end -%> 

<% content_for :content do %> 
    <p style="color: green"><%= flash[:notice] %></p> 
    <%= yield %> 
<% end -%> 

<% render :file => 'layouts/application' %> 

ブラウザで私のビューの1つに行くと、何もレンダリングされません。ソースを見ると、htmlはありません。

私は忘れてしまったものがあると確信しています。それは私がもしわからない

<%= render :file => 'layouts/application' %> 

で、このライン

<% render :file => 'layouts/application' %> 

を交換しましたthis article

に与えられているものではありませんが、

+0

[複数レベルのネストされたレイアウトin Rails 3]の可能な複製(http://stackoverflow.com/questions/6539239/multiple-level-nested-layout-in-rails-3) –

答えて

29

私は、解決策を打ち出してきました記事が間違っている、または私はそれを修正する間違った方法を見つけた!私にお知らせください!

乾杯

+0

このレスキューされた私と同じ混乱から私。 – gabe

+0

+1、私も混乱していました。 – dfrankow

+0

と同じ。ありがとう。それは1年以上されており、ガイドの誤りはそのままです。 :| – unsorted

4

オリジナルの記事に誤りがあり、解決方法は正しいです。理由は次のとおりです。

<% =%>で囲まれたERB(ビュー)内のルビコードの出力が生成され、ブラウザに送信されます。 < %%>に囲まれたルビコードの出力は、HTMLに追加されません。部分的にフェッチするルビコードの結果が生成されたHTMLファイルに追加されないので、<%render:partial ...%>を呼び出すことは効果がありません。

<%>は、通常、上記の例のように、条件文とループ用に予約されています。

関連する問題