2011-12-13 52 views
22

save(false)save(:validate => false)之間的區別是什麼?從我所知道的,功能是一樣的。使用:validate的版本在api中導致我相信save(false)是已棄用的版本?接下來是這樣的:https://github.com/plataformatec/devise/wiki/How-To:-Create-a-guest-user。該指南中有save(false),但使用它時出現錯誤。我將它切換到:validate版本,並且工作正常。保存(false)和保存(:validate => false)之間的區別

回答

30

在Rails版本比3之前,savewas a methodActiveRecord::Base,你可以爲了通過false它繞過驗證。

在Rails 3,savewas movedActiveRecord::Persistance,從那時起,你應該爲了通過:validate => falsesave繞過驗證。

+0

以爲是類似的東西,謝謝! – Steve

+0

請注意,一旦你使用這個來保持違反約束的狀態,所有後續的保存也需要驗證:false。 – DylanReile

相關問題