ruby-on-rails - Rails select_all 反序列化 Postgresql 数组
问题描述
我进行了一个自定义查询,该查询返回具有数组值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 解析结果并返回嵌套数组?
解决方案
你(我)应该调用 cast_values 方法
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").cast_values
推荐阅读
- apache-camel - 尽管流缓存,为什么我的 Camel http 响应正文为空?
- python - 将所有 nlp 实体提取到另一列
- r - 具有聚集标准误差的固定效应回归
- python-3.x - Django 使用 PostgreSQL - 重复索引
- python - python中的表格数据结构修改
- c# - 如何在 FlowEnt 中创建流?
- python - 如何在opencv和python中使眼睛和鼻子变大或变小
- html - 如何仅使用 bootstrap 4 在桌面和移动设备上给出列间隙?
- sql - 在 SQL 中将字符串转换为日期
- javascript - 带有 javascript 片段的 VS Code Intellisense html 标签