此warning(向下滚动到“嵌套交易”)指出函数foo
:
def foo
User.transaction do
<stuff that mutates the database>
raise ActiveRecord::Rollback
end
end
的行为会有所不同,具体取决于是否从事务块内部调用它。我知道这一点,而且我也知道Rails在事务中执行每个测试用例。
我的函数看起来像foo
,并且它们在测试中表现得如预期。我的问题是:Rails是如何实现这一目标的?在测试中默认情况下是ActiveRecord::Base#transaction
是否包含requires_new: true
?
(我在Postgres上。)