Domanda

Credo che questo è stato chiesto prima, ma anche se ho cercato di Google non hanno escogitato una soluzione.

Quindi questo è quello che sto cercando di fare in 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>

Si noti la resa prima il content_for.

so che Rails - di default - non consente il contenuto di: testa da definire dopo il rendimento è stato utilizzato - ha un senso.

Ho anche cercato di agganciare nel modello di processo, ma senza successo finora il rendering.

Così il mio obiettivo è quello di poter definire parziali content_for dentro / templates e avere la "resa" in qualche modo ritardato ed eseguito poco prima della risposta è inviare al browser.

Ha qualcuno venire con una soluzione?

Saluti e grazie, Frank

Aggiorna Vado con l'idea di weppos e io provo sul middleware rack. grazie

È stato utile?

Soluzione

Il processo di rendering primi carichi ed esegue il modello di azione, quindi decora il modello con il layout selezionato. La disposizione è resa dall'alto verso il botton, quindi non è possibile aggiungere altri contenuti al :head dopo :head è già resa.

È necessario modificare la vostra strategia. O inserire il frammento in un parziale e allegarlo al vostro punto di vista di azione o di utilizzare una strategia post-elaborazione ad esempio un modulo rack / after_filter di modificare il codice html direttamente.

Probabilmente cercherei di trovare una soluzione migliore in base a quello che ho effettivamente bisogno. Se si è verificato questo problema, è probabile che l'errore è da qualche altra parte, forse nell'architettura app.

Altri suggerimenti

Non ci dovrebbe essere un segno di uguale nella sua dichiarazione content_for. Dovrebbe essere:

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

Se si definisce il contenuto entro i modelli e partial allora dovrebbe funzionare. Questa tecnica era coperto di Railscast episodio 8 .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top