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

Rails 4 Active record, find object by checking serialized array attribute for inclusion in another array

我有一个具有序列化属性 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 是一个值数组,我该如何实现类似的东西呢?

如果A.ids returns一个id数组的数组,可以用Array#flatten

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