before_create回调破坏事务

时间:2011-11-06 03:52:42

标签: ruby ruby-on-rails-3 activerecord

如果我在回调中分配布尔值,它是否会影响交易?我怀疑false的赋值也会在下面的情况下返回self.assigned,因此会破坏我的事务。是这种情况吗?

before_create :set_default_values

def set_default_values
  self.finished = false
  self.assigned = false
end

1 个答案:

答案 0 :(得分:2)

是的,这确实会影响交易。以下是官方Rails文档中的描述:

  

如果before_ *回调返回false,则所有后来的回调和   相关操作已取消。如果after_ *回调返回false,   所有后来的回调都被取消了。回调通常在运行   它们的定义顺序,但定义为的回调除外   模型上的方法,最后称为。

我只想在迁移文件中将这些设置为:default => false,以便设置此表或列。这绝对容易。

这是回调文档:
http://api.rubyonrails.org/classes/ActiveRecord/Callbacks.html