mak*_*han 6 postgresql json ruby-on-rails ruby-on-rails-4
我正在使用json字段在我的一个模型中存储一些额外的参数.
它工作得很好,除了它没有检测到我使用方括号访问数据时所做的更改:
2.1.1 :002 > p = Payments.last
=> {...}
2.1.1 :003 > p.params.keys
=> ["receipt_data"]
2.1.1 :004 > p.params['verification_data'] = 'test'
=> "test"
2.1.1 :005 > p.params.keys
=> ["receipt_data", "verification_data"]
2.1.1 :006 > p.params_changed?
=> false
2.1.1 :007 > p.save
(0.2ms) BEGIN
(0.2ms) COMMIT
=> true
2.1.1 :008 > Payment.last.params.keys
Payment Load (0.5ms) SELECT "payments".* FROM "payments" ORDER BY "payments"."id" DESC LIMIT 1
=> ["receipt_data"]
Run Code Online (Sandbox Code Playgroud)
如何强制它保存更改?
在任何更新之前强制执行.你可以说:
p = Payments.last
p.params_will_change!
p.params['verification_data'] = 'test'
p.save
Run Code Online (Sandbox Code Playgroud)
顺便说一句,ActiveRecord应该自动处理脏跟踪.所以,如果您可以在github上推送一个再现此问题的应用程序,我可以尝试提供帮助.
| 归档时间: |
|
| 查看次数: |
978 次 |
| 最近记录: |