我有一个带有serialized(数组)属性的模型。
我一直在尝试建议in this answer的查询:
MyModel.where("my_attribute = ?", [43565, 43402].to_yaml)
但它只返回一个空的ActiveRecord::Relation
。
如何查询在序列化属性中查找具有特定值的对象?
型号代码:
class User < ActiveRecord::Base
has_secure_password validations: false
belongs_to :organization
serialize :actions, Array
end
列类型为String
。
答案 0 :(得分:0)
暂时忘掉Rails并转到SQL。它是如何存储在数据库中的?是整数类型,字符串类型?您需要匹配该特定列才能生效。 Ruby可以进行解析和正确的ActiveRecord查询。但是,您的SQL数据库正在进行查找。
不确定这是否直接回答了您的问题。但它应该让你朝着正确的方向前进。
答案 1 :(得分:0)
使用IN命令
MyModel.where("my_attribute IN(?)", [43565, 43402])
你也可以使用NOT IN