![](/img/trans.png)
[英]Rails Rspec - ActiveRecord::StatementInvalid: PG::InFailedSqlTransaction:
[英]Error in an after hook, PG::InFailedSqlTransaction from Rspec
我試圖從模型spec文件運行rspec,但我收到此錯誤:“掛鈎后發生錯誤”
“掛鈎后發生錯誤PG :: InFailedSqlTransaction:錯誤:當前事務中止,命令被忽略,直到事務結束。發生在C:/ Ruby193 / lib /.../ postgresql_adapter:294”
我搜索了這個問題,我發現了將'database_cleaner'降級為'1.0.1'的建議。 我做了,但它不起作用。 有誰知道如何解決這個問題? 提前致謝!
如果在事務范圍內執行錯誤的SQL語句,從該語句中搶救異常,然后嘗試在同一事務中執行另一個SQL語句,則會發生這種情況。
一旦事務中的一個語句失敗,就不能再在該事務中執行語句。
這是一個例子:
ActiveRecord::Base.transaction do
begin
ActiveRecord::Base.connection.execute "A bad query"
rescue => ex
puts ex.message
end
puts User.count
end
User.count
引發PG::InFailedSqlTransaction
因為之前的SQL語句引發了ActiveRecord::StatementInvalid
並且被rescue
吞沒了。
所以我會尋找在事務范圍內挽救的代碼,然后嘗試運行其他SQL語句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.