[ruby-it] Rails: variabili globali troppo globali

Tucano tucano a recipient.cc
Mer 4 Mar 2009 18:28:45 CET


Intervento da niubbo....

perche' non si usa in questo caso:

flash[:foo] = bar ?

ciao

Il giorno 03/mar/09, alle ore 19:31, Paolo Montrasio ha scritto:

> Alessandro Scolavino wrote:
>> Io lo uso quasi sempre, in pratica genera una tabella nuova e ci  
>> salva
>> dentro i dati della session, molto comodo e molto veloce (e  
>> sopratutto
>> ti puoi portare dietro grossi moli di dati)
>>
>>> config.action_controller.session_store = :active_record_store
>>>
>>> dentro config/environments.rb, per� non ho mai provato, non so  
>>> come
>>> funziona.
>
> Attenzione però alle race conditions tra chiamate diverse dello  
> stesso
> browser. Sono comuni quando ci sono applicazioni ajax che vanno a
> cambiare dati in sessione e se non si sa che possono capitare si
> impazzisce per giorni a cercare misteriosi bug che fanno sparire i  
> dati
> appena memorizzati in session[].
>
> In due parole: la chiamata ajax 1 inizia a fare operazione e a  
> scrivere
> dati in sessione, la chiamata ajax 2 inizia anche lei a lavorare e
> finisce prima della 1; quando la 1 finisce va a memorizzare la sua
> sessione sovrascrivendo qualsiasi cosa la 2 abbia fatto.
>
> Per rimediare al problema esiste una variante di active_record_store  
> che
> si chiama SmartSessionStore. La uso da un paio d'anni con  
> soddisfazione
> anche se ricordo di averla customizzata un po' (ma non il perché)
>
> http://svn1.hosted-projects.com/fcheung/smart_session_store/trunk/
>
> Meglio ancora è evitare di usare la sessione se non per dati molto
> piccoli e in situazioni che non abbiano race conditions. Solo che
> all'inizio della mia esperienza in Rails venivo da Java dove in  
> sessione
> si infila di tutto. Ora non lo faccio più :-)
>
> Paolo
> -- 
> Posted via http://www.ruby-forum.com/.
> _______________________________________________
> Ml mailing list
> Ml a lists.ruby-it.org
> http://lists.ruby-it.org/mailman/listinfo/ml



More information about the Ml mailing list