gpt4 book ai didi

ruby-on-rails - 在 Rails 应用程序中解析 PostgreSQL 结果对象

转载 作者:数据小太阳 更新时间:2023-10-29 07:31:52 26 4
gpt4 key购买 nike

我正在编写一个需要快速处理数十万行数据的应用程序,因此我研究了使用 ActiveRecord::Base.connection.execute 在我的 Ruby 代码中嵌套原始 SQL ,效果很好。但是,每当我运行它时,我都会得到以下对象:

#<PG::Result:0x007fe158ab18c8 status=PGRES_TUPLES_OK ntuples=0 nfields=1 cmd_tuples=0>

我四处搜索,找不到将 PG 结果解析为实际有用的东西的方法。是否有任何内置的 PG 方法来执行此操作、解决方法或其他任何方法?

这是我正在使用的查询:

SELECT row_to_json(row(company_name, ccn_short_title, title))
FROM contents
WHERE contents.company_name = '#{company_name}'
AND contents.title = '#{title}';

最佳答案

实际上 PG::Result 响应了 Enumerable 模块中的许多众所周知的方法。您可以将它们全部输出以查看所需的:

query = "SELECT row_to_json(row) from (select * from users) row"
result = ActiveRecord::Base.connection.execute(query)
result.methods - Object.methods
# => returns an array of methods which can be used

例如,您可以迭代结果并将它们映射到更合适的东西......

result.map do |row|
JSON.parse(row["row_to_json"])
end
# => returns familiar hashes

通过其索引获取所需的结果哈希...

result[0]

还有更多。

关于ruby-on-rails - 在 Rails 应用程序中解析 PostgreSQL 结果对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30741523/

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