Ho un processo che itera attraverso un gruppo di modelli ActiveRecord, esegue qualche elaborazione e salva nuovamente i modelli. Spesso, tuttavia, l'elaborazione non determina modifiche agli attributi e quindi la colonna updated_at
non cambia mai (anche se è stato richiamato il salvataggio)."Touch" nella colonna updated_at in Rails 2.3.2
Preferirei non disabilitare gli aggiornamenti parziali (in generale, sono utili). Sto indovinando che i miei due opzioni sono:
- Aggiungi una colonna timestamp separato per il modello (vale a dire, '
processed_at
') e gestire questo me stesso, anche se questo sembra un po 'uno spreco/ridondante. - o in qualche modo annullare la gestione dell'attributo
updated_at
?
Ho sentito dire che Rails 3 avrà un metodo "touch" che sarebbe esattamente quello che sto cercando.
Eventuali idee/opzioni/opinioni?
Wow! Hai ragione. Lezione appresa, non credere a tutto ciò che leggi in un post del blog (http://ryandaigle.com/articles/2009/4/20/what-s-new-in-edge-rails-touching), vai direttamente a la fonte (http://github.com/rails/rails/blob/0d3c5f0a822cd1b6029b5f619774b7794a94f370/activerecord/lib/active_record/timestamp.rb#L27) – ideasasylum
Penso che DHH potrebbe averlo menzionato su Twitter - è così che lo sapevo. –
Grrr ... sembra che il supporto al tocco abbia appena perso la versione 2.3.2 e si trovi solo nel ramo 2.3 STABLE. Non c'è un traguardo 2.3.3 ma il 2.3.4 è elencato come 18 luglio. Immagino che dovrò solo aspettare :-( – ideasasylum