2011-09-25 12 views
11

I tienen una parcial, con un diseño:diseños de carriles parciales con rendimiento con nombre: ¿por qué nunca se utiliza el bloque de rendimiento?

<%= render :partial => 'home/mobile/home', :layout => 'home/mobile/page', :locals => {:page => 'abc2'}%> 

La disposición (page.html.erb) tiene rendimientos para diferentes bloques, tales como:

<div data-role="header"> 
    <%= yield :header %> 
</div> 

Sin embargo, este bloque de rendimiento no es nunca utilizado, mientras que el archivo de diseño de nivel principal rinde como uno esperaría.

¿Es imposible usar bloques content_for/yield con los diseños de los parciales? ¿Hay soluciones temporales?

Espero que inheritance-- content_for: header busque primero un encabezado yield en el diseño parcial y, en su defecto, el archivo de diseño principal. Pero este no es el caso. El rendimiento parcial del diseño: el encabezado simplemente se ignora.

Respuesta

0

La solución sería envolver su diseño en un método de ayuda usando blocks (que debería poder ceder correctamente).

Es posible que desee filtrar un error acerca del problema original.

+0

cree que lo haría tiene que hackear esto un poco para que funcione con rieles 3 – numbers1311407

2

En una situación similar a la suya, reemplacé el yield con una llamada al content_for sin un bloque. Entonces en su ejemplo sería simplemente:

<div data-role="header"> 
    <%= content_for :header %> 
</div> 

Eso funcionó para mí. Que yield s en parciales no goteen, ya que sugiere que puede ser una característica o un error, pero eso sigue siendo la forma en que funciona en Rails 4.1.8, 3 años en la línea :)

Cuestiones relacionadas