我正在從Rails 2(最新版本)遷移到Rails 3(beta2)。
測試與紅寶石1.9.1p378和紅寶石1.9.2dev(2010-04-05幹線27225)Rails 3 - yield return或callback不會在視圖中調用<%= yield(:sidebar)|| render('shared/sidebar')%>
的情況下卡住了,我不知道哪一部分將工作做好。懷疑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等例子。如果設置了此塊,則內部的pice HTML應呈現在application.html.erb
中。
如果沒有,Rails應在右邊顯示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應用程序中運行良好。
現在,在Rails 3(beta2)只有yield
部分工作。
|| render('shared/sidebar')
or
方不會通過rails或ruby處理。
感謝您的輸入和時間!
這是這麼髒 – 2010-09-17 03:40:37