save(false)和save(:validate => false)之间的区别

Ste*_*eve 27 ruby-on-rails devise

save(false)和之间有什么区别save(:validate => false)?据我所知,功能是一样的.使用的版本:validate是在api中让我相信save(false)是一个弃用的版本?在我这样做时,我想到了这个:https://github.com/plataformatec/devise/wiki/How-To : -Create-a-guest-user.指南已经save(false)在那里,但我在使用它时遇到错误.我把它切换到:validate版本,并且工作正常.

Lam*_*bda 39

在3比之前的Rails版本,save 是一个法ActiveRecord::Base,你可以通过false它才能绕过验证.

在Rails 3中,save 被移动ActiveRecord::Persistance,从那时起你应该传递:validate => falsesave它以绕过验证.


Jig*_*att 29

我们使用时会跳过模型的所有验证 validate: false

@user = User.new(....)

@user.save(validate: false)
Run Code Online (Sandbox Code Playgroud)

动作基地禁用验证

http://www.dan-manges.com/blog/action-dependent-validations-and-why-on-update-is-bad

跳过字段验证

https://richonrails.com/articles/skipping-validations-in-ruby-on-rails

class User <ActiveRecord :: Base

validates_presence_of:password,:on =>:update

结束