我们说我有这种关系:
Users has_many Orders, Visits
对于每个用户,我想组成一个这样的对象:
{Name: user.name, Orders: user.orders, Visits: user.visits}
我想限制对去年发生的访问,以及对过去一个月发生的访问。现在我正在尝试使用此查询:
Users.includes(:Visits, :Orders).where('Visit.occurred_on > ?', 1.year.ago)
.where('Order.date > ?', 1.month.ago)
.references(:Visits, :Orders)
问题是,这只返回那些满足条件的用户,因为在外连接之后应用了条件。有没有办法只包括我正在寻找的记录?
答案 0 :(得分:0)
您可以像这样更改查询:
Users.includes(:Visits, :Orders).where('Visit.occurred_on > ? AND Order.date > ?', 1.year.ago, 1.month.ago)
让我知道这对你有用。
注意:查询未经过测试