是否可以在导轨中执行一系列更新之后延迟验证?

时间:2016-02-04 00:32:58

标签: ruby-on-rails activerecord

我的一个模型有一个position列,我有一个可拖动的UI,允许用户通过将其拖动到新位置来更改模型的位置。更新位置将更新该表中许多其他条目的位置。

我希望能够在事务中一次更新所有受影响的模型,然后进行所有位置仍然唯一的验证运行,并在验证未通过时回滚事务。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:0)

好吧,我认为您希望使用活动记录事务块来包装您想要对所有更新执行的操作!如果由于验证而在所有记录更新期间出现任何故障,它将回滚活动记录事务内的所有内容块。
这是一个链接,供您阅读更多http://api.rubyonrails.org/classes/ActiveRecord/Transactions/ClassMethods.html

另外,如果你真的需要跳过验证,你可以这样做 export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native/:$LD_LIBRARY_PATH 保存好像之后再次检查 @model.save(validate: false) 并且您需要在活动记录事务块中手动抛出异常以使所有内容回滚