validate: false
saveにvalidate: falseを引数として与えると、saveのバリデーションをスキップすることが可能です。この手法は十分注意して使う必要があります。
save(validate: false)
- こんな時に使用
- データパッチをする必要があるが、バリデーションが走り登録できない
- 仕様上、Modelに定義したバリデーションは変更したくない
sample.rb
ActiveRecord::Base.transaction do
# 更新
contract.assign_attributes(contract_kind: MONTHLY, updated_system: SYSTEM_NAME, updated_user: UPDATED_USER)
contract.save!(validate: false)
end