2011-12-13 15 views
22

Qual è la differenza tra save(false) e save(:validate => false)? Da quello che posso dire, la funzionalità è la stessa. La versione che utilizza :validate è nell'API che mi induce a credere che save(false) sia una versione deprecata? Mi è venuto in mente quando ho seguito questo: https://github.com/plataformatec/devise/wiki/How-To:-Create-a-guest-user. La guida contiene save(false) ma ho riscontrato degli errori durante l'utilizzo. L'ho passato alla versione :validate e questo ha funzionato bene.Differenza tra salvataggio (falso) e salvataggio (: validazione => falso)

risposta

30

Nelle versioni Rails prima di 3, savewas a method in ActiveRecord::Base e si potrebbe passare false ad esso al fine di convalide di bypass.

In Rails 3, savewas moved-ActiveRecord::Persistance e da allora si dovrebbe passare a :validate => falsesave al fine di convalide di bypass.

+0

pensato che fosse una cosa del genere, Grazie! – Steve

+0

Nota che una volta che hai usato questo stato per persistere che viola i vincoli, tutti i salvataggi successivi avranno anche bisogno di essere convalidati: falso. – DylanReile