Carriles: el uso de “content_for” después de la correspondiente “rendimiento” dentro de la disposición

StackOverflow https://stackoverflow.com/questions/2026740

Pregunta

Creo que esto se ha hecho antes, pero a pesar de que he buscado Google no he llegado a una solución.

Así que esto es lo que estoy tratando de hacer en Rails 2.3.5:

layouts/application.html.erb:
<html>
  <head>
    ... some other stuff
    <%= yield :head %>
  </head>
  <body>
    <% content_for :head, "something that belongs in the head" %>
  </body>
</html>

Observe el rendimiento antes el content_for.

Sé que carriles - por defecto - no permite que el contenido de: la cabeza a ser definido después rendimiento se ha utilizado - tiene sentido.

Incluso he intentado enganchar en la plantilla de proceso, pero sin éxito hasta el momento de render.

Así que mi objetivo es ser capaz de definir content_for parciales / templates dentro y tener el "rendimiento" de alguna manera retardada y ejecutado justo antes de la respuesta se envía al navegador.

Tiene alguien llegar a una solución?

Saludos y gracias, Frank

Actualizar Voy a ir con la idea de weppos y trato a mí mismo en el middleware bastidor. gracias

¿Fue útil?

Solución

El proceso de renderización primeros carga y ejecuta la plantilla de acción, entonces decora la plantilla con el diseño seleccionado. El diseño se hace de arriba hacia Botton, por lo tanto no se puede añadir más contenido a :head después :head ya presta.

Es necesario cambiar su estrategia. Cualquiera de colocar el fragmento en un parcial y adjuntarlo a sus puntos de vista de acción o usar una estrategia de post-procesamiento tal como un módulo de Rack / after_filter para alterar el código html directamente.

Probablemente me tratar de encontrar una solución mejor en base a lo que realmente se necesita. Si se encuentra con este problema, es probable que el error está en otra parte, tal vez en la arquitectura de aplicación.

Otros consejos

No debe haber un signo igual en su estado de cuenta content_for. Debe ser:

<% content_for :head, "Something that belongs in the head" %>

Si se define el contenido dentro de sus plantillas y elementos parciales entonces debería funcionar. Esta técnica fue cubierto en Railscast episodio 8 .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top