带有json列参数的范围

时间:2016-05-20 18:58:00

标签: ruby-on-rails json postgresql rails-activerecord ruby-on-rails-5

我有一个json列 - document

我已使用color_code

指定了store_accessor :document, :color_code属性

我可以成功查询数字3的所有实例:

MyModel.where("document ->> 'color_code' = '3'")

但是我如何将该查询转换为带有数字参数的作用域,所以我可以更普遍地使用它?

1 个答案:

答案 0 :(得分:6)

您可以尝试这样的事情:

class MyModel
   scope :with_color, ->(color) { where("document ->> 'color_code' = '?'", color) }
end

然后发出范围:

MyModel.with_color(3)