序列化的jsonb字段不适用于过滤器

时间:2018-01-19 11:21:21

标签: ruby-on-rails ruby postgresql jsonb

我有一个带有jsonb fiel的课程,这是序列化的。

class Solicitacao < ApplicationRecord
   serialize :dados
end

但是当我尝试使用此查询过滤到json时,

Solicitacao.where('dados @> ?', {foo: '1234'}.to_json)

如果我删除&#39;序列化:dados&#39;查询有效。 有没有办法使这项工作?

1 个答案:

答案 0 :(得分:0)

如果列被序列化,则意味着您忽略了使用ruby代码的数据库抽象。换句话说,您无法使用数据库查询对其进行过滤,但您可以使用ruby

加载和过滤它
Collection.all.select{ |item| item.property == 123 }