如何使用包含列名的Rails ActiveRecord获取任意结果集

时间:2012-11-20 17:47:39

标签: ruby-on-rails ruby activerecord

我需要做一个跨多个模型并加入数据的复杂SQL查询;这是我的应用程序中的一种一次性特殊报告,因此我无法通过标准模型语法来完成此操作。

我查看了ActiveRecord::Base.connection.select_rows,这非常符合我的要求,但它会返回一个直接的数组或数组而不包含列名。理想情况下,我想要一些与select_rows相同的方式工作,但是返回一些更多的信息,沿着字典数组的行,以便在构建我的报告页面时可以使用键值查找。

2 个答案:

答案 0 :(得分:3)

您可以使用ActiveRecord::Base.connection.select_all()执行此操作。

答案 1 :(得分:1)

您可以使用results = ActiveRecord::Base.connection.exec_query(sql)并使用results.rows获取行数组,使用results.columns获取列名称数组。