【发布时间】:2015-04-01 03:41:36
【问题描述】:
我有以下两种型号:
class Client < ActiveRecord::Base
has_many :orders
end
class Order < ActiveRecord::Base
belongs_to :client
end
我想查询一个列表中指定的订单(order_1,order_2)的客户,同时需要客户的所有订单。我可以通过下面的 SQL 做到这一点:
SELECT *
FROM CLIENTS C
JOIN ORDERS O
ON C.ID = O.CLIENT_ID
WHERE EXISTS
(SELECT *
FROM CLIENTS C1
JOIN ORDERS O1
ON C1.ID = O1.CLIENT_ID
WHERE O1.ID IN ('order_1', 'order_2')
AND C1.ID = C.ID
);
有什么办法可以用rails的方式做到这一点吗?下面的代码会给满意的客户,但 client.orders 只返回指定的订单。
clients.includes(:orders).where(orders: { id: ['order_1', 'order_2'] })
我不知道如何在一个查询中获取所有信息。
【问题讨论】:
标签: ruby-on-rails activerecord