我正在努力了解如何使用hstore,如果我尝试修改我的哈希值,似乎数据库没有更新.
在我的导轨控制台我做
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)COMMIT
当我检查数据库时,列有正确的数据
现在当我尝试
u.hash_column['key'] = 'second'
该模型在控制台中似乎是正确的
puts u.hash_column
给
{ “键”=> “中第二个”}
但是当我尝试保存这个
u.save
在我的控制台我只是得到
(0.3ms)开始
(0.2ms)COMMIT
没有更新语句,当我检查数据库数据没有改变.
如果我更改用户模型上的另一个属性并保存它,则hash_column仍然不会被更新.我可以更改数据库中的hash_column的唯一方法就是分配给完整的哈希
u.hash_column = {'key' => 'second'}
这是怎么意味着工作或我做错了?