has_and_belongs_to_many - 查询给出Model2 id列表的Model1项

时间:2017-02-03 15:59:28

标签: ruby-on-rails ruby ruby-on-rails-5

我有Model1和Model2彼此has_and_belongs_to_many。 给定Model2的id列表,如何查询与它们关联的Model1?

我必须使用连接,但究竟如何?如果它是一对多的,我就这样做:

    select m1.* from model1 as m1
    inner join model2 as m2
    on m1.id = m2.m1_id
    where m2.id in (?)

1 个答案:

答案 0 :(得分:1)

您可以使用您手动构建的相同查询在Rails中完成此操作,在ActiveRecord中表示为

Model1.joins('inner join model2').where(model2: { id: list_of_ids })