2012-04-10 11 views
10

Ho una tabella sessione di memoria di base che contiene i seguenti:Modifica updated_at in un record Rails

id 

sessnhash 

userid 

created_at 

updated_at 

L'idea è che quando si crea un utente prime log in un caso sessnhash e passò indietro in modo che tutte le ulteriori azioni è necessario inviare quel sessionhash per le richieste del server. Questi passano attraverso un login? metodo sul controller dell'applicazione che controlla semplicemente che esiste una riga nella tabella per quella sessionehash.

Ora desidero estendere questa funzionalità per tenere una scheda dell'ultima volta che si è verificata qualsiasi attività per quell'utente e ho pensato che uno dei modi per farlo sarebbe quello di fare immediatamente un salvataggio dopo aver trovato la sessionehash, sperando che questo quindi aggiorna l'attributo 'updated_at'.

Tuttavia Rails è troppo intelligente e non aggiorna nulla poiché nella realtà nulla è stato aggiornato.

Esiste un modo per forzare Rails ad aggiornare l'attributo updated_at senza dover apportare modifiche ai dati a nessuno degli altri attributi?

+0

Devi accettare la risposta. –

risposta

22

Ho appena saputo che devo fare.

sessn.touch 

che aggiornerà l'attributo updated_at.

È tutto qui: touch.

Problemi correlati