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版本中, save
是 ActiveRecord::Base
一个方法 ,您可以将false
传递给它以绕过validation。
在Rails 3中, save
被移动到ActiveRecord::Persistance
,从那时起你应该传递:validate => false
来save
以绕过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 结束