WebサイトをRails2(最新)からRails 3(beta2)に移行しています。Ruby1.9.1p378およびRuby1.9.2dev
を使用
したテスト(2010-04-05トランク27225)
状況にとらわれて、どの部分がうまくいくかわかりません。容疑者yield
が問題ですが、正確にはわかりません。
私のレイアウトファイルでは、次の手法を頻繁に使用しています。
app/views/layouts/application.html.erb
:
<%= yield(:sidebar) || render('shared/sidebar') %>
たとえば、部分的な外観は次のようになります。
app/views/shared/_sidebar.html.erb
:
<p>Default sidebar Content. Bla Bla</p>
さあ、重要な部分の時間です!
どのビューでも、ブロックを作成したいと思いますcontent_for
(オプション)。これには、以下のHTMLなどの例を含めることができます。このブロックが設定されている場合、内部のpiceHTMLはでレンダリングされapplication.html.erb
ます。そうでない場合、Railsは右側
のPartialをレンダリングする必要があります。shared/_sidebar.html.erb
app/views/books/index.html.erb
:
<% content_for :sidebar do %>
<strong>You have to read REWORK, a book from 37signals!</strong>
<% end %>
だからあなたはアイデアを持っています。うまくいけば。この手法は、Rails2.xアプリケーションでうまく機能しました。
現在、Rails 3 (beta2)ではyield
、パーツのみが機能しています。
|| render('shared/sidebar')
サイドはor
レールやおそらくルビーでは処理されません。
入力と時間をありがとう!