【发布时间】:2014-02-05 12:16:29
【问题描述】:
我正在尝试了解如何使用 hstore,如果我尝试修改哈希中的值,似乎数据库没有更新。
在我的 Rails 控制台中,我这样做了
u = User.new
u.hash_column = {'key' => 'first'}
u.save
我在控制台中收到一条消息 (0.4ms) 开始 SQL (2.0ms) UPDATE "users" SET "hash_column" = $1, "updated_at" = $2 WHERE ... (18.0ms) 提交 当我签入数据库时,该列的数据正确
当我尝试时
u.hash_column['key'] = 'second'
模型在控制台中似乎是正确的
puts u.hash_column
给予 {"key"=>"秒"}
但是当我尝试保存它时 u.save 在我的控制台中,我得到了 (0.3ms) 开始 (0.2ms) 提交 没有更新语句,当我检查数据库时,数据没有改变。
如果我更改用户模型上的另一个属性并保存它 hash_column 仍然没有得到更新。我可以更改数据库中 hash_column 的唯一方法似乎是分配给完整的哈希,例如
u.hash_column = {'key' => 'second'}
这是它的工作原理还是我做错了什么?
【问题讨论】: