Rails如何运行自定义查询并返回地图数组

时间:2018-10-12 08:02:26

标签: ruby-on-rails activerecord

我的应用程序中有2个模型。假设ModelA(id,attributeA1,attributeA2)和ModelB(id,attributeB1,attributeB2)。现在,我想运行一个自定义查询:

select attributeA1, attributeA2, attributeB2 from ModelA inner join ModelB on ModelA.id == ModelB.id

最终结果是我想要一个数组。每个元素都是具有以下键的地图:attributeA1,:attributeA2,:attributeB2。

2 个答案:

答案 0 :(得分:1)

答案 1 :(得分:0)

答案如下。

  connection = ActiveRecord::Base.connection
  res = connection.exec_query(%Q(
    select attributeA1, attributeA2, attributeB2 
       from ModelA inner join ModelB 
       on ModelA.id == ModelB.id
  ))

然后可以通过res.rowsres.columns

迭代结果