Incapsulare View differenti nello stesso layout

Dunque,
avevo gia’ sollevato il quesito sul mio topic di presentazione ma ora
che ho avuto modo di dare una letta alla guida:

posso porre con piu’ precisione il mio quesito (che probabilmente ha una
risposta nella stessa guida che ho seguito :facepalm:)

Allora:

ho il layout di default “application.html.erb” che sfrutta yield per
“inserire” la mia “home/index.html.erb” nel resto del layout…

Bene, la mia index, fa riferimento (da quanto ho capito) al controller
“home_controller.rb”

Fin qui tutto apposto.
Il problema e’ che io pensavo di creare altri due “Controller-View”,
chiamati Header e Footer (con le rispettive View, es.
“footer/footer.html.erb”) che gestissero rispettivamente la testata e il
piede della mia applicazione…
Come faccio a inserire nel layout application queste due View?

Ho provato in questo modo:

<%= yield :header %>
<%= yield %>
<%= yield :footer %> ...

ma a quanto pare ho capito male…

So che forse mi sto complicando la vita e che probabilmente ancora non
ci ho capito un acca, quindi siate liberi di criticare le mie decisioni
e di illuminarmi verso la retta via!

grazie anticipatamente, Luca

2011/12/7 Luca B. [email protected]

<%= yield :header %>

<%= yield %>
<%= yield :footer %>

Per popolare le varie yield puoi usare l’helper actionview content_for

Se header e footer sono uguali per tutto il sito ti conviene usare un
partial e metterlo nella cartella app/views/shared/_footer.html.erb e
poi
chiamarlo da application.html.erb con <%= render “shared/footer” %>

Ciao
Stefano

Per popolare le varie yield puoi usare l’helper actionview content_for

Grazie, appena posso do’ un occhiata!

Se header e footer sono uguali per tutto il sito ti conviene usare un

partial e metterlo nella cartella app/views/shared/_footer.html.

erb e poi
chiamarlo da application.html.erb con <%= render “shared/footer” %>

Ecco, e’ proprio per questo che ho creato due controller-view: Header,
Footer… in quanto sono si due porzioni uguali per tutto il sito, ma
potrebbero non essere statiche… quindi mi sembrava giusto creare
proprio
delle entit per entrambi…

2011/12/7 Stefano P. [email protected]

2011/12/7 Luca B. [email protected]

Ecco, e’ proprio per questo che ho creato due controller-view: Header,
Footer… in quanto sono si due porzioni uguali per tutto il sito, ma
potrebbero non essere statiche… quindi mi sembrava giusto creare proprio
delle entit per entrambi…

Se la logica non estremamente complessa puoi spostarne quanto riesci
sul
model e scrivere degli helper da usare poi nei partial.

Se per devi realizzare un sito con molti widget e componenti potresti
utilizzare la gemma “cells” in cui ogni cella ha il suo controller ma
nel
tuo caso la trovo sovradimensionata per il problema.

Sisi, per ora sto sperimentando, l’obiettivo finale sarebbe fare una web
app abbastanza sofisticata, ma per ora molto presto…

Cerco solo di impostare al meglio il progetto dall’inizio diciamo…
Comunque pian piano mi faro’ strada! Sono ancora disorientato per il
momento :stuck_out_tongue:

Il giorno 07 dicembre 2011 11:43, Stefano P.
<[email protected]

ha scritto:

On Wed, Dec 7, 2011 at 3:04 PM, Luigi M. - grigio.org
<[email protected]

wrote:

Occhio che se questi pezzi di view hanno bisogno di mantenere uno stato
o chiamare il db meglio gestirli come “Cells”.

http://cells.rubyforge.org/

Luigi

Questa mi pare proprio una grande gemma!

Complimenti per la segnalazione! E grazie!

Riccardo

Occhio che se questi pezzi di view hanno bisogno di mantenere uno stato
o chiamare il db è meglio gestirli come “Cells”.

http://cells.rubyforge.org/

Luigi

Felice di aver contribuito alla vostra condivisione :stuck_out_tongue: (almeno servito
a
qualcosa il mio topic!)

Io momentaneamente non ci ho capito molto, e forse che per ora lascio
stare sta cosa del frammentare le view…

Cmq terr in considerazione anche questa cells!

Il giorno 07 dicembre 2011 15:09, Duncan [email protected] ha
scritto: