【发布时间】:2021-09-09 12:59:21
【问题描述】:
我做了一个自定义查询,它返回具有数组值 term_names
的行Product.connection.select_all("
SELECT ARRAY_AGG(terms.name), vocabularies.name vocabulary_name
FROM terms
INNER JOIN vocabularies ON vocabularies.id = terms.vocabulary_id
GROUP BY vocabulary_name")
| term_names | vocabulary_name |
|----------------------------------------------------------------|-----------------|
| {{76,Yellow},{77,Green},{79,Blue}. | Color |
但问题是 Rails 不想将 {...} 转换为 ruby 数组并将其作为字符串返回。
[{"array_agg"=>"{Yellow,Green,Blue}", "vocabulary_name"=>"Color"}]
如何让 Rails 解析结果并返回嵌套数组?
【问题讨论】:
-
你是什么 Rails 版本?
-
您几乎错误地使用了 ruby ...但无论如何您都在要求您的数据库返回一个字符串。如果您希望它是一个数组,您需要使用
split,和/或设置一个模型来与“术语”表对话,然后使用 ruby 进行分组 -
@JoelBlum 它的 Rails 6
标签: ruby-on-rails ruby postgresql activerecord