我必须使用这样的查询:
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
的每一行都包含数组..而不是具有每个字段名称的地图。
也许select_all
是一种错误的方法。
是否存在另一种获取字段名称数据的方法?
谢谢
修改
答案 0 :(得分:1)
如果您可以将模型与查询相关联,则无需使用通用select_all
方法。您可以像这样使用find_by_sql
:
Enc.find_by_sql(query).first.mode
# => testing
请注意,在检查结果时,您将无法看到别名,但它们就在那里。此外,惯例是对表使用多个名称。您可能会发现使用默认设置更容易。