我有这个控制方法Rails的Rspec的 - 的ActiveRecord :: StatementInvalid:PG :: InFailedSqlTransaction:
def dashboard
method1
method2
method3
..
end
一切工作正常在development
环境.. 但在test
环境, 我得到这个错误后前几种方法。
我使用binding.pry
仅高于其经常拿错误的行检查,
我不能运行任何查询eg: Account.first
但同样Account.first
作品dev
环境
错误,当我在test
环境中运行:
ActiveRecord::StatementInvalid: PG::InFailedSqlTransaction: ERROR: current transaction is aborted, commands ignored until end of transaction block
: SELECT "accounts".* FROM "accounts" ORDER BY "accounts"."id" ASC LIMIT 1
from /home/qwinix/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/activerecord-4.2.4/lib/active_record/connection_adapters/postgresql_adapter.rb:596:in `async_exec'
请注意以下
- 在其他控制器和相应规范中未发现错误。
- 有在同一个控制器没有错误从其他分支
- 我添加一些代码来
method1
,其执行在两个环境就好了。我在method3
之后得到了这些错误,我没有碰过。
PS:我做了谷歌和搜索计算器的问题,没有帮助
编辑:当我移动method1
结束,我没有得到任何错误,请解释我这种行为。
你能分享你在哪里得到实际的代码错误。 –
这条消息意味着你有错误_before_该语句,并没有回滚事务,然后试图执行查询,你发布在这里和postgres抱怨。您需要启用自动提交并查看哪些查询出错,使用try catch块或检查数据库日志。 –