【发布时间】:2020-08-18 15:48:27
【问题描述】:
我有一个名为 Product 的模型,我想从 ActiveRecord SELECT 语句中获取 id、name 和动态计算的属性值。 Product 模型具有 id、name、product_type 属性。
目前我正在尝试使用类似 SQL 的方法
Product.select("id, name, CASE WHEN product_type = 'AB' THEN 'xyz1' WHEN product_type = 'BC' THEN 'xyz2' END AS custom_value")
转换为以下原始 SQL
SELECT id, name,
CASE
WHEN product_type = 'AB' THEN 'xyz1'
WHEN product_type = 'BC' THEN 'xyz2'
END AS custom_value
FROM Product
但是这种方法不会返回在运行时计算的列,它只返回Product 记录的id 和name 列。
【问题讨论】:
-
“product_type”列不可见,但可以使用它。试试
Product.select(...)[0].case。
标签: postgresql ruby-on-rails-4 activerecord ruby-on-rails-5