我有两个模型,分包商:
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)
的内容,但这似乎不起作用。
答案 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))