Я пытаюсь понять, как использовать hstore, и кажется, что база данных не обновляется, если я пытаюсь изменить значение в моем хеше.
В моей консоли rails я делаю
u = User.new
u.hash_column = {'key' => 'first'}
u.save
Я получаю сообщение в консоли (0,4 мс) НАЧАТЬ SQL (2.0ms) UPDATE "users" SET "hash_column" = $1, "updated_at" = $2 WHERE... (18,0 мс) COMMIT и когда я проверяю DB, у столбца есть правильные данные.
теперь, когда я пытаюсь
u.hash_column['key'] = 'second'
модель кажется правильной в консоли
puts u.hash_column
дает { "Ключ" = > "второй" }
однако, когда я пытаюсь сохранить это u.save в моей консоли я просто получаю (0,3 мс) НАЧАТЬ (0,2 мс) COMMIT без инструкции обновления, и когда я проверяю БД, данные не изменились.
если я изменяю другой атрибут в пользовательской модели и сохраняю его, hash_column до сих пор не обновляется. Единственный способ, которым я могу изменить hash_column в базе данных, как представляется, назначить полный хеш, например
u.hash_column = {'key' => 'second'}
это то, как он предназначен для работы, или я делаю что-то неправильно?