Rails 4活动记录,通过检查序列化数组属性以包含在另一个数组中来查找对象

时间:2015-05-05 08:30:08

标签: ruby-on-rails ruby-on-rails-4 rails-activerecord

我有一个具有序列化属性ID的模型。

Model A {
    serialize :ids, JSON
}

该属性用于存储IDS [1,2]列表。如何搜索IDS列表是另一个IDS列表子集的对象?

我知道如果A.ids具有奇异值,这将是可能的。在这种情况下,我可以使用它:

A.where(ids: [1,2,3]) 

查找[1,2,3]中包含id的所有对象。但是,如果A.ids是一组值,我如何实现类似的东西呢?

1 个答案:

答案 0 :(得分:1)

如果A.ids返回带有ID的数组数组,则可以使用Array#flatten

[ 4, 5, 6, [7, 8] ].flatten
#=> [4, 5, 6, 7, 8]