[ruby-it] Variabili d'istanza non visibili
Daniel Hahn
hahn a netseven.it
Mer 26 Ago 2009 15:27:27 CEST
Ciao Nicola,
non sono proprio sicuro cosa vuoi fare, comunque ho qualche chiarimenti:
* Per i modelli Rails, #initialize non vienne chiamato quando
l'oggetto è creato dalla db, quindi la variabile vienne mai
innizzialisato
* Sovrascrivere #initialize per sottoclasse non è molto
consigliato. In quel caso, chiama almeno #super
* Per i controller: I variabili assegnato nel :before_filter sono
visibile sia nel controller, sia nel view - ma _solo_ per la richiesta
attuale
Non saranno li per la prossima richiesta - ricordi che HTTP è un
protocollo stateless. Questo vale per _tutti_ i variabili della
runtime! (O almeno si assume sempre che la runtime è "vuota" al inizio
della richiesta)
* Dati per la sessione si può mettere nel hash "session". I
contenuti di quel hash sono sempre disponibile in tutte le richieste
della stessa sessione. Non è consigliato mettere dei oggi complessi
nella session-hash
* Dati nella db sono (ovviamente) sempre disponibile ovunque
Ciao,
Daniel
Il giorno 25/ago/09, alle ore 11:24, Nicola Nico ha scritto:
> per pietro:
>
> Ok, ho fatto un'altra prova e ho visto che le variabili posso
> dichiararle anche in altri metodi, e sono comunque visibili.. Chissà
> come avevo provato prima
>
> per simone:
>
> forse ho intuito dove sta il problema. l'istanza della classe viene
> creata nell'Application, in questo modo
>
> before_filter :initialize_session
> def initialize_session
> @user_session ||= UserSession.new(session)
> end
>
> before_filter :fetch_logged_in_user
> def fetch_logged_in_user
> if @user_session
> @current_user = @user_session.get_logged_user
> end
>
> return nil
> end
>
> La classe che deve contenere la variabile è UserSession
> Poi uso @user_session dove voglio (in teoria), per impostare la
> sessione. Forse il problema è dato dal before_filter. Io vorrei che
> venisse creata un'istanza di UserSession una tantum per gestire le
> sessioni dell'utente corrente.
> --
> Posted via http://www.ruby-forum.com/.
> _______________________________________________
> Ml mailing list
> Ml a lists.ruby-it.org
> http://lists.ruby-it.org/mailman/listinfo/ml
--
Daniel Hahn
Software Architect
hahn a netseven.it
Net7
Via Marche 8a - 56123 Pisa
http://www.netseven.it/
More information about the Ml
mailing list