Rails 3 - возвращение yield или обратный вызов не будут вызываться в поле зрения <% = yield (: sidebar) || render ('shared / sidebar')%>

Я перевожу сайт с Rails 2 (последний) на Rails 3 (бета2).
Тестирование сRuby 1.9.1p378 а такжеRuby 1.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 и т. Д. Пример ниже. Если этот блок установлен, HTML-код внутри должен отображаться в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 %>

Итак, у вас есть идея. С надеждой. Эта техника хорошо работала в любом приложении Rails 2.x.
Сейчас вРельсы 3 (Бета2) толькоyield Часть работает.

|| render('shared/sidebar')

or сторона не будет обрабатываться рельсами или рубином.

Спасибо за вклад и время!

Ответы на вопрос(4)

Ваш ответ на вопрос