has_many相互之间的模型 - 如何找到具有特定其他模型的模型?

时间:2013-12-05 23:27:50

标签: ruby-on-rails ruby-on-rails-3 activerecord

表:

销售,类型,销售类型。

销售has_many SaleTypes,has_many类型通过SalesTypes。 类型has_many SaleTypes,has_many通过SalesTypes销售。

我想找到所有销售,其中Types.id == 1 OR在[1,2,3]中。

到目前为止,最好的解决方案是:

Sale.joins(:sale_types).where('sale_types.type_id = ?', '1')

然而,这似乎不实用,并且它不接受数组/多个匹配。有更好的方法吗?

1 个答案:

答案 0 :(得分:1)

做连接是我能想到的最佳方式。如果要根据多种类型选择销售,请执行此操作

Sale.joins(:sale_types).where('sale_types.type_id in (?)', types)