json 列的参数范围

Scope with argument for a json column

我有一个 json 列 - document

我已经用 store_accessor :document, :color_code

指定了 color_code 属性

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

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

但是我如何将该查询转换为带有数字参数的范围,以便我可以更广泛地使用它?

您可以尝试这样的操作:

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

然后发布范围:

MyModel.with_color(3)