gpt4 book ai didi

ruby-on-rails - Rspec中的PG::InFailedSqlTransaction之后 Hook 中的错误

转载 作者:行者123 更新时间:2023-12-04 04:13:05 24 4
gpt4 key购买 nike

我试图从模型规范文件运行rspec,但出现此错误:“后钩中发生错误”

"An error occurred in to after hook PG :: InFailedSqlTransaction: ERROR: current transaction is aborted, commands ignored until end of transaction. occurred at 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语句。

关于ruby-on-rails - Rspec中的PG::InFailedSqlTransaction之后 Hook 中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21263678/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com