根据另一个表列查找表记录

时间:2018-09-18 14:07:51

标签: ruby-on-rails

我有两个表:

Orders => [state]
Ads => [title, order_id]

Order has_many Ads
Ad belongs_to Order

如果我想查找所有标题为“ AAA”的广告订单,我会这样做:

Order.all.joins(:ad).where(title: "AAA")

但我想查找所有订单状态属性等于“ XXX”的广告。我该怎么办?

1 个答案:

答案 0 :(得分:2)

在rails中,您可以这样做:

Ad.joins(:order).where(orders: { state: "AAA" })

这将产生以下SQL:

SELECT ads.*
FROM ads
INNER JOIN orders ON order.id = ads.order_id
WHERE orders.state = 'AAA'