我目前正在使用state_machine gem。
如果我有以下状态机:
state_machine :status, do
state :published, :deleted
event :remove do
transition published: :deleted
end
end
当我的对象无效时,任何状态转换都会失败:
post.valid? => false
post.remove! =>
StateMachine::InvalidTransition: Cannot transition status via :remove from :published
我希望无需验证检查即可转换,类似于:ActiveRecord#save(validate: false)
在状态转换期间是否有一种跳过ActiveRecord
验证的好方法?
答案 0 :(得分:0)
鉴于你的评论,这个问题主要是关于当前验证不是最新的旧记录,我会说你可以做两件事:
Model.update_column state: 'deleted'
或Model.where(_to_be_deleted_).update_all state: 'deleted'