我需要做一个跨多个模型并加入数据的复杂SQL查询;这是我的应用程序中的一种一次性特殊报告,因此我无法通过标准模型语法来完成此操作。
我查看了ActiveRecord::Base.connection.select_rows
,这非常符合我的要求,但它会返回一个直接的数组或数组而不包含列名。理想情况下,我想要一些与select_rows
相同的方式工作,但是返回一些更多的信息,沿着字典数组的行,以便在构建我的报告页面时可以使用键值查找。
答案 0 :(得分:3)
您可以使用ActiveRecord::Base.connection.select_all()
执行此操作。
答案 1 :(得分:1)
您可以使用results = ActiveRecord::Base.connection.exec_query(sql)
并使用results.rows
获取行数组,使用results.columns
获取列名称数组。