В чем разница между save(false)
и save(:validate => false)
? Из того, что я могу сказать, функциональность такая же. Версия, использующая :validate
, находится в api, что заставляет меня думать, что save(false)
- устаревшая версия? Это пришло мне в голову, следуя этому: https://github.com/plataformatec/devise/wiki/How-To:-Create-a-guest-user. В руководстве есть save(false)
, но при использовании я получал ошибки. Я переключил его на версию :validate
, и это сработало нормально.
Разница между save (false) и save (: validate => false)
Ответ 1
В версиях Rails до 3, save
был методом в ActiveRecord::Base
, и вы могли передать ему false
в порядке для обхода проверок.
В Rails 3, save
был перенесен на ActiveRecord::Persistance
, и с этого момента вы должны пройти :validate => false
до save
, чтобы для обхода проверок.
Ответ 2
Вся валидация с модели пропускается, когда мы используем validate: false
@user = User.new(....)
@user.save(validate: false)
Действие базы отключить проверку
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
конец