Ruby on rails 关联上的ActiveRecord/Arel链条件

Ruby on rails 关联上的ActiveRecord/Arel链条件,ruby-on-rails,activerecord,arel,Ruby On Rails,Activerecord,Arel,我试图构造一个查询,根据记录的关联条件选择记录。 在我的例子中,我有Box有许多项目和项目属于Box 我想获取包含项的所有框,条件如下: (item.type = "toy" and item.used_count >= 2) AND (item.type = "book" and item.used_count >= 3) AND (item.type = "bottle" and item.used_count >

我试图构造一个查询,根据记录的关联条件选择记录。 在我的例子中,我有
Box有许多项目
项目属于Box

我想获取包含
项的所有
,条件如下:

(item.type = "toy" and item.used_count >= 2) AND
(item.type = "book" and item.used_count >= 3) AND
(item.type = "bottle" and item.used_count >= 3)
我试过用阿雷尔,但似乎做不好。我只能设法找到一个单一条件的盒子,但一直无法链接它们。
有人能帮我构造这个查询吗?我花了太长时间,还没有在其他问题中找到任何我可以适应的解决方案。

如果你想在rails中编写这个条件,你可以使用
where(“SQL直接在这里”)

像这样:

Box.join(:items)。其中(((items.type='toy'和items.used\u count>=2)和(items.type='book'和items.used\u count>=3)和(items.type='bottle'和items.used\u count>=3)
请注意表示表或关联名称的复数形式

但是我认为这不是您想要的

您希望获得包含3个不同项目的盒子,第一个条件(类型=玩具和使用的数量>=2),另一个条件(类型=书本和使用的数量>=3)和另一个条件(类型=瓶子和使用的数量>=3)

您可能需要在此自定义联接

Box.joins(“JOIN items items items items items item item item item item 1 ON item 1.Box\u id=Box.id和item 1.type='toy'和item 1.user\u count>=2”).JOIN(“JOIN items items items items items items items items items items items items items item 2.Box\u id=Box.id和items items items items items items items items items item2 ON items items items items items items items items items items items items items items items items items items items items ite

您是如何将它们链接起来的?您肯定需要
将它们连接在一起?是的,我可能确实需要使用
只是不确定如何进行。这正是我的问题:(