如何从2个没有任何关联的ActiveRecord模型中获取结果

时间:2013-07-01 19:41:25

标签: ruby-on-rails ruby activerecord

我在ActiveRecord中有2个模型,比如说A和B,两个模型都有item_id字段,这两个模型都是主键。

但是,他们之间没有关联(has_many,belongs_to等)

A:item_id,attr_1,attr_2

B:item_id,attr_3,attr_4

现在,我需要从A和B中获取一些涉及attr_1 ..attr_4

的子句的数据

SQL:从A,B中选择A.item_id,attr_1,attr_2,attr_3,attr_4,其中A.item_id = B.item_id和attr_1 =“foo”和attr_3 =“bar”

我现在想的选择是,A和B都将查询分解(表,子句,字段等)返回给控制器,让控制器创建如上所述的查询。 然后使用执行查询 的ActiveRecord :: Base.connection.execute(查询)

PS:不想从第一个模型获得结果,迭代它并从第二个模型获得结果。将导致过多的数据库查询。此外,不希望合并两个表,因为它们包含不相关的数据。

有什么更好的建议吗?

1 个答案:

答案 0 :(得分:0)

像加入一样?

A.joins('JOIN bs ON bs.item_id = as.item_id AND as.attr_1="foo" AND bs.attr_3="bar"').select("as.attr_1, as.attr_2, bs.attr_3, bs.attr_4")

这是未经测试的,但也应该有效。