[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