选择在数组属性中包含值的Rails对象

jma*_*rcs 3 arrays activerecord ruby-on-rails

我有一个名为Box的Rails模型。每个Box对象都有一个:products列,它是一个字符串数组,其中包括当时存储在其中的所有产品。

对于每个Box对象,可能将相同的值存储在另一个Box中。

是否有一个查询,我可以用来返回所有x都存储在:products中的Box?

我知道“ where”可用于查找具有特定值的对象,并且对于数组,您可能会使用“ include?”,但是在这种情况下(如果有可能),我很难找到一种使用方法。

jma*_*rcs 5

在此之前,这里已经发布了一个答案,效果很好,但是我环顾四周,发现另一个更简洁的查询。

selected_boxes = Box.where("?=ANY(products)", x)

其中x是您在每个对象中寻找的值。