Se si dispone di colonne DB created_at
e updated_at
, Rails imposterà automaticamente tali valori quando si crea e si aggiorna un oggetto modello. C'è un modo per salvare il modello senza toccare quelle colonne?C'è un modo per evitare di aggiornare automaticamente i campi di data e ora di Rails?
Sto introducendo alcuni dati legacy e vorrei impostare quei valori dai valori corrispondenti nei campi di dati legacy (con nomi diversi). Sto trovando quando li ho impostati sul modello e poi salvando il modello, Rails sembra sovrascrivere i valori in entrata.
Ovviamente potrei semplicemente denominare le colonne del modello Rails in modo diverso per impedirlo, ma dopo che i dati sono stati importati, voglio che Rails esegua il suo timestamp automatico.
Puoi persino inserire questo metodo in un metodo, ad es. 'def without_timestamps vecchio = ActiveRecord :: Base.record_timestamps ActiveRecord :: Base.record_timestamps = false iniziare resa garantire ActiveRecord :: Base.record_timestamps = vecchio fine FINE' – nonrectangular
Abbiamo bisogno di ripristinare di nuovo a 'true', anche quando l'esecuzione di scrips o codice all'interno della console? – oldergod
Penso che http://stackoverflow.com/a/37193298/1214748 sia molto meglio. Non lo spegne globalmente per l'intera applicazione – maschwenk