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

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

在3之前的Rails版本中, saveActiveRecord::Base 一个方法 ,您可以将false传递给它以绕过validation。

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

当我们使用validate: false时,将跳过模型的所有validation

 @user = User.new(....) @user.save(validate: false) 

动作基地禁用validation

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

跳过字段validation

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

class User

validates_presence_of:password,:on =>:update

结束