我必须使用这样的查询:
query = Enc.joins(:rec).group("enc.bottle").
select("enc.bottle as mode, count(rec.id) as numrec, sum(enc.value) as sumvalue")
我使用的:
@enc = ActiveRecord::Base.connection.select_all(query)
要获取数据,我必须做@enc.rows.first[0]
(它可以工作)
但是@enc.rows.first["mode"]
不起作用!因为每一行都@enc.rows
包含array ..而不是每个字段名称的映射。
也许select_all
是错误的方法。
是否存在另一种获取具有字段名称的数据的方法?
谢谢
编辑
如果您可以将模型与查询关联,则不需要通用select_all
方法。您可以这样使用find_by_sql
:
Enc.find_by_sql(query).first.mode
# => testing
请注意,在检查结果时您将看不到别名,但是它们在那里。同样,约定是对表使用复数名称。您可能会发现坚持使用默认值会更容易。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句