【发布时间】:2020-10-18 21:12:01
【问题描述】:
我有一个名为 data 的字段,它是使用 jsonb_accessor ruby gem 设置的,如下所示:
jsonb_accessor :data,
line_items: [:jsonb, array: true, default: []]
这是在我的Contract 模型上。当 Contract 创建时,它是一个空数组,如下所示:
data: {"line_items"=>[]},
我想向这个空数组添加多个哈希值。例如:
{user: "Joe"}
然后我可能会添加哈希:
{user: "Jack"}
我尝试了很多东西,但都没有成功,包括:
new = [{user: "Joe"}].to_json
Contract.last.update_all(["line_items = line_items || ?::jsonb", new])
##
Contract.last.update(["line_items = line_items || ?::jsonb", new])
然后我尝试了push
Contract.last.line_items.push("line_items" => {user: "Todd"})
然后我尝试了merge
Contract.last.line_items = Contract.last.line_items.merge(new)
没有任何效果。
【问题讨论】:
标签: ruby-on-rails ruby postgresql jsonb