Sto migrando un sito web da Rails 2 (più recente) a Rails 3 (beta2).
Test con Rubino 1.9.1p378 e Rubino 1.9.2dev (2010-04-05 tronco 27225)Rails 3 - yield return o callback non chiamerà in vista <% = yield (: sidebar) || render ('shared/sidebar')%>
Bloccato in una situazione, non so quale parte funziona bene. Il sospetto yield
è il problema, ma non lo so esattamente.
Nel mio file di layout Io uso la seguente tecnica abbastanza spesso:
app/views/layouts/application.html.erb
:
<%= yield(:sidebar) || render('shared/sidebar') %>
Ad esempio l'aspetto parziale come:
app/views/shared/_sidebar.html.erb
:
<p>Default sidebar Content. Bla Bla</p>
ora è il momento per la parte fondamentale!
In qualsiasi vista, desidero creare un blocco content_for
(facoltativo). Questo può contenere un esempio di HTML ecc. Di seguito. Se questo blocco è impostato, il codice HTML all'interno deve essere visualizzato in application.html.erb
.
In caso contrario, Rails dovrebbe rendere il parziale a shared/_sidebar.html.erb
sul lato destro.
app/views/books/index.html.erb
:
<% content_for :sidebar do %>
<strong>You have to read REWORK, a book from 37signals!</strong>
<% end %>
Così hai l'idea. Fiduciosamente. Questa tecnica ha funzionato bene in qualsiasi applicazione Rails 2.x.
Ora, in Rails 3(beta2) solo la parte yield
funziona.
|| render('shared/sidebar')
Il lato or
non elaborerà dalle rotaie o forse rubino.
Grazie per l'input e il tempo!
Questo è così sporco –