Controller "nidificati" ed helper relativi


#1

Scusate per l’oggetto un pò criptico.

Vorrei sapere se è possibile far ereditare i metodi tra helper.
Sono nella situazione in cui ho i seguenti controller:

  • admin_controller
  • admin/user_controller

Nell’helper “admin_helper.rb” ho definiti alcuni metodi che vorrei poter
utilizzare anche nelle view del controller “admin/user_controller”.

E’ possibile la cosa, o sono costretto a duplicare tutto?
Devo ricorrere a delle “lib”?

Dopo aver creato il controller “admin/user_controller”, ho notato che i
link_to nel layout “application.rhtml” non funzionavano più.

Prima di questa introduzione, nel layout avevo semplicemente:

link_to(“blabla”, :controller => “pippo”, :action => “pluto”)

In seguito, ho dovuto modificare in:

link_to(“blabla”, :controller => “/pippo”, :action => “pluto”)

Questo perchè Rails si conserva l’ultimo percorso utilizzato per
raggiungere un controller. E’ normale? C’è un modo per riportare alla
root dopo ogni azione?

Scusatemi se sono stato poco chiaro, ma oggi proprio sono fuso…

Grazie per il Vs aiuto.


#2

Ciao Chiaro Scuro,

Innanzitutto, grazie 1000 per la tua risposta.

puoi metterli in application_helper dove vengono condivisi da tuuti,

Si, quella di application_helper la sapevo e volevo evitarla per una
pura questione di “ordine”.
Si tratta di metodi utilizzati solo dal pannello di amministratore e,
quindi, volevo relegarli a quella gerarchia.

oppure
nel controller in cui li vuoi usare usi la direttiva

helper MyHelper

nella classe del controller per aggiungere gli helpers che ti servono.

Può andare.
Thanks


#3

On 5/18/07, Carmine M. removed_email_address@domain.invalid wrote:

Scusate per l’oggetto un pò criptico.

Vorrei sapere se è possibile far ereditare i metodi tra helper.
Sono nella situazione in cui ho i seguenti controller:

  • admin_controller
  • admin/user_controller

puoi metterli in application_helper dove vengono condivisi da tuuti,
oppure
nel controller in cui li vuoi usare usi la direttiva

helper MyHelper

nella classe del controller per aggiungere gli helpers che ti servono.