Estoy migrando un sitio web desde Rails 2 (más reciente) a Rails 3 (beta2).
de pruebas con Rubí 1.9.1p378 y Rubí 1.9.2dev (2010-04-05 tronco 27225)Rieles 3: retorno de rendimiento o devolución de llamada no se ejecutarán en vista <% = yield (: sidebar) || render ('shared/sidebar')%>
Atrapado en una situación, no sé qué parte va a funcionar bien. El problema es el sospechoso yield
, pero no lo sé exactamente.
En mi archivos de diseño que utilice la siguiente técnica muy a menudo:
app/views/layouts/application.html.erb
:
<%= yield(:sidebar) || render('shared/sidebar') %>
por ejemplo, el aspecto parcial como:
app/views/shared/_sidebar.html.erb
:
<p>Default sidebar Content. Bla Bla</p>
Ahora es el momento para la pieza clave!
En cualquier vista, quiero crear un bloque content_for
(opcional). Esto puede contener un ejemplo de pice de HTML, etc. a continuación. Si se establece este bloque, el pice HTML interno debe mostrarse en application.html.erb
.
De lo contrario, los rieles deben mostrar el parcial en shared/_sidebar.html.erb
en el lado derecho.
app/views/books/index.html.erb
:
<% content_for :sidebar do %>
<strong>You have to read REWORK, a book from 37signals!</strong>
<% end %>
Así que tienes la idea. Ojalá. Esta técnica funcionó bien en cualquier aplicación de Rails 2.x.
Ahora, en Rails 3(beta2) solo la parte yield
está funcionando.
|| render('shared/sidebar')
El lado or
no procesará por raíles o tal vez rubí.
¡Gracias por su tiempo y contribución!
Esto es tan sucio –