我想知道这是一个bug还是正常的rails行为。
我在PostgreSQL数据库中有一个JSON类型列,看起来像这样
id | name | address(json)
1 | josh | { line1: nil, line2: nil, city: nil }
字符串
如果我这样做:
@account = Account.find(1)
@account.address['city'] = "new york"
@account.save
型
这通过重写整个json和每个属性来更新整个列。我想这可能会在某些用例中引入竞争条件,而不仅仅是更新地址。
UPDATE "accounts" SET "address" = $1, "updated_at" = $2 WHERE "accounts"."id" = $3 [["address", "{'is_foreign':false,'line1':'54 Lemon Ave",'line2':null,'city':'new york','state':'NY','country':'US'}"], ["updated_at", "2019-11-15 18:09:07.698093"], ["id", 2]]
型
1条答案
按热度按时间axr492tv1#
这看起来像是一个正常的行为,试试这个:
字符串
希望有帮助!
更多有用的信息在这里: