搜索HABTM在另一个模型的HABTM中的位置

时间:2014-02-01 18:59:03

标签: ruby-on-rails ruby-on-rails-4 rails-activerecord active-record-query

我有两个模型,分包商:

class Subcontractor < ActiveRecord::Base
  has_and_belongs_to_many :trades
end

并出价:

class Bid < ActiveRecord::Base
  has_and_belongs_to_many :trades
end

我正在尝试查找所有与特定出价交易相匹配的交易的分包商。我尝试了Subcontractor.where(trade_ids: bid.trade_ids)的内容,但这似乎不起作用。

3 个答案:

答案 0 :(得分:1)

如果您将数组传递给ActiveRecord查询,ActiveRecord就足够聪明地知道您指的是数组的所有项IN

你试过吗

Subcontractor.where(trade_ids: bid.trades.pluck(:id))

答案 1 :(得分:1)

以下是我最终查询的方式:

Subcontractor.joins(:trades).where('trades.id' => bid.trade_ids).uniq

答案 2 :(得分:0)

你也可以这样做

Subcontractor.where("trade_id in (?)", bid.trades.pluck(:id))