【问题标题】:Rails 4 Active record, find object by checking serialized array attribute for inclusion in another arrayRails 4活动记录,通过检查序列化数组属性来查找对象以包含在另一个数组中
【发布时间】:2015-05-16 00:28:10
【问题描述】:

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

【问题讨论】:

  • 很遗憾,我不得不重新考虑数据库。你不可能全都赢。

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


【解决方案1】:

如果A.ids返回一个带有id的数组,你可以使用Array#flatten

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

【讨论】:

    猜你喜欢
    • 2012-04-15
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 2021-08-22
    • 2014-03-19
    • 2021-12-26
    相关资源
    最近更新 更多