Rails,activerecord,从hstore记录中删除键值对

时间:2017-03-16 06:07:37

标签: ruby-on-rails activerecord hstore

我在我的模型中有这样的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设为零。我想删除b的键值对,而不是将其设置为nil。

谢谢!

1 个答案:

答案 0 :(得分:1)

尝试

update_attribute([%(properties = delete("properties",?)), 'b'])

OR

properties.delete("b")