【发布时间】:2012-01-30 06:08:34
【问题描述】:
在日志中我看到ROLLBACK,但没有记录异常。有没有办法找出导致 ROLLBACK 的原因?
这是日志的摘录:
Phone Load (0.4ms) SELECT "phones".* FROM "phones" WHERE "phones"."id" = $1 LIMIT 1 [["id", 980190963]]
(0.2ms) BEGIN
User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."phone_id" = 980190963 LIMIT 1
(0.2ms) ROLLBACK
Phone Load (0.4ms) SELECT "phones".* FROM "phones" WHERE "phones"."id" = $1 LIMIT 1 [["id", 980190963]]
User Load (0.4ms) SELECT "users".* FROM "users" WHERE "users"."phone_id" = 980190963 LIMIT 1
【问题讨论】:
-
ROLLBACK 周围的日志中有什么内容?
-
没有错误。此外,奇怪的是,它一次使用事务,下一次不使用。除非这两部分不相关。
-
知道是什么导致了事务中的 SELECT 吗?
-
可能你正在做一些保存/更新。能贴一下log对应的代码吗?
-
解决了我的问题:rails 不喜欢在回调期间修改具有直通关联的关联模型时,无论是在模型中还是在观察者中。没有异常消息或任何东西;只是回滚。
标签: ruby-on-rails activerecord