Хорошо, у меня здесь странный вопрос.В приложении Rails 4.0.13 я добавил к модели:
store_accessor :transcoding_meta, :state
Глядя на схему модели (SongVersion), тип transcoding_meta
действительноhstore
.
Обратите внимание, что в SongVersion есть также столбец state
, представляющий собой строковый столбец.
s = SongVersion.ready.last
s.transcoding_meta
=> {"state"=>"finished"}
s.state
=> "finished"
Когда фактически столбец состояния в базе данных сохраняетсякак "active"
как и ожидалось.
Почему Rails срабатывает?Могу ли я на самом деле не иметь ключ hstore
с тем же именем, что и существующий столбец?Кажется, он должен знать разницу.