gpt4 book ai didi

ruby-on-rails - Rails:PG::ConnectionBad(连接已关闭)

转载 作者:行者123 更新时间:2023-11-29 14:18:33 25 4
gpt4 key购买 nike

我在 Rails 中使用 native 查询(因为我的查询很复杂,而且我认为它不能在 ActiveRecord 中表达)。所以这是我的尝试:

get  do
connection = ActiveRecord::Base.connection.raw_connection
connection.prepare('order_statistic', @@sql)
data = connection.exec_prepared('order_statistic', [params[:id]])
connection.close()
data
end

此代码第一次成功运行。但是第二次,它会抛出异常。 (我正在使用 PostgresSQL)

PG::ConnectionBad (connection is closed)

如果我删除 connection.close 行。我会遇到另一个异常:

PG::DuplicatePstatement (ERROR: prepared statement "order_statistic" already exists

请帮助我如何正确使用原始查询。

谢谢

最佳答案

要进行原始查询,您可以按照以下操作:

ActiveRecord::Base.connection.execute(%{YOUR QUERY HERE})

你的代码中的原因是你已经关闭了与数据库的连接,所以你不能做进一步的查询,要重新连接数据库你可以调用 reconnect! 就像:

ActiveRecord::Base.connection.reconnect!

但我不建议你这样做,rails 已经帮你处理了,不要自己做,让使用我的第一个建议来完成所有原始查询!

关于ruby-on-rails - Rails:PG::ConnectionBad(连接已关闭),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38594219/

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