如何引用具有相同基础模型的多个连接表?

时间:2017-11-03 01:51:13

标签: ruby-on-rails rails-activerecord

我的模型如下所示:

A

基本上tags以两种不同的方式加入B

我希望运行一个内部加入其他表CAOther.joins(A: [:B, :C]).where('tags.id = 1') 的查询,并根据每个属性进行过滤。通常我会这样做:

tags

但{{1}}在这里含糊不清。有更好的方法吗?

我意识到这不是最干净的数据模型,但我们只是假装我从其他人那里继承了这个代码库:P

1 个答案:

答案 0 :(得分:1)

怎么样

Other.joins('inner join a on a.id = other.a_id 
             inner join (Select ...) as b
             inner join (Select ...) as c

             where 
                b...
             or
                c...
           ')