我有這個控制方法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塊或檢查數據庫日誌。 –