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]
我有一个具有序列化属性 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]