我有两个模型
class Checkout
has_one :order
end
class Order
belongs_to :checkout
end
我需要找到所有尚未下订单的结帐。我该如何使用滑轨?
答案 0 :(得分:2)
使用left outer join
,它会给您所有与订单结合的结帐。然后选择无顺序的行(Chceckout.left_outer_join(:orders).where('orders.id' => nil)
)
JOIN
答案 1 :(得分:0)
这里的技巧是include()需要关联的名称,而where需要表的名称。对于has_one而言,关联通常以单数形式表示,因此会发生变化,但是where()部分保持原样。因此声明如下:
Checkout.includes(:order).where( :orders=> { :orders_id=> nil } )