【发布时间】:2018-11-04 00:57:25
【问题描述】:
我有一个表格格式如下的模型:
string "name"
integer "line_id"
json "filters"
filters 字段包含一个带有嵌套键的 json 对象。我想修改一个特定的键而不覆盖 json 的其余部分。
目前filters中存储的json对象长这样
{
"ext": {"name": "filter", "id": 3},
"int": {"name": "numb", "id": 1}
}
我正在尝试将int.name 的值更新为"remove",而不修改json 对象的其余部分。
如果我执行以下操作,它将简单地覆盖整个 json 对象,而不是修改该特定键:
Model.where("filters->>'int'->>'name' IS NOT NULL").update(
filters: {
int: {
name: "remove"
}
}
)
我怎样才能简单地使用路径int.name 更新那个键,同时保持其余属性相同?
【问题讨论】:
标签: ruby-on-rails json ruby postgresql