20 Feb
Rails: migrazioni e update_attributes
Spesso può capitare di inserire una nuova colonna in una migrazione e volerla popolarla immediatamente. Se provate a farlo noterete che nessuna modifica verrà effettuata. Per consentire l’aggiornamento dovete fare una chiamata al Base#reset_column_information in modo che il modello abbia l’ultimo schema disponibile dopo l’aggiunta della colonna.
1 # Modelli iniziali 2 3 5 end 6 7 9 end 10 11 # Migrazione 12 13 14 15 add_column :posts, :comments_count, :integer 16 Comment.reset_column_information 17 Post.find(:all).collect do |post| 18 post.update_attributes(:comments_count => post.comments.count) 19 end 20 end 21 22 23 remove_column :posts, :comments_count 24 end 25 end 26 27 # Aggiungi counter_cache 28 29 31 end 32 33 # Commento sul counter_cache 34 # Ogni volta che usi post.comments_count non fai nessun accesso al db ma usi la cache 35 36 #Filippo di ateapick 37 38 39


Sei semplicemente un grande!!! Grazie mille!
Davide