【发布时间】:2017-08-07 04:16:19
【问题描述】:
我的模型中有这样的 hstore:
store_accessor :properties, :a, :b, :c, :d
假设数据库中的一条记录具有这样存储的 hstore 列(注意这不是整个记录,只是此处显示的 hstore 部分):
properties: {"a"=>"1", "b"=>"2", "d"=>"5"}
如果我想删除键值对 "b"=>"2" 使得结果是
properties: {"a"=>"1", "d"=>"5"}
如何在模型代码中执行此操作?我试过这个:
update_attribute(:b, nil)
但这会将 b 设置为 nil。我想删除 b 的键值对而不是设置为 nil。
谢谢!
【问题讨论】:
-
我认为在“属性”上使用 except 方法然后保存记录会有所帮助。试试这个,但根据您的需要进行修改。 -> http://stackoverflow.com/questions/6227600/how-to-remove-a-key-from-hash-and-get-the-remaining-hash-in-ruby-rails
标签: ruby-on-rails activerecord hstore