ActiveRecord :: Base.transaction验证缺失

时间:2016-10-15 11:55:18

标签: ruby-on-rails activerecord

Rails 4.1.16或4.2.7

让我们看看,例如,我们有

class Foo < ActiveRecord::Base
validate :name, presence: true 
end

然后在IRB我们将得到

Foo.create # => validation error
Foo.transaction{ Foo.create } # COMMIT

我可以弄清楚,事务块中没有raise,这意味着它将被提交(当然我可以使用create!,但它不会取消问题)。但验证失败了!恕我直言,这种行为并不陌生。

你能说清楚,为什么用这种方式制作?在这种情况下,我可能不明白一些具体的内容吗?

如果你知道如何使ActiveRecord大声失败,并且对命令和命令没有任何意义,那将是完美的。

谢谢!

0 个答案:

没有答案