Я пытаюсь сохранить вложенный хэш в своей базе данных и извлечь его, но вложенные значения теряются при извлечении.
Моя модель выглядит так:
class User
serialize :metadata, MetaData
end
Класс MetaData выглядит следующим образом:
class MetaData < Hash
attr_accessor :availability, :validated
end
Код, который я использую для хранения данных, выглядит примерно так (хотя реальные данные поступают из формы HTML):
user = User.find(id)
user.metadata.validated = true
user.metadata.availability = {'Sunday' => 'Yes', 'Monday' => 'No', 'Tuesday' => 'Yes'}
user.save
Когда я смотрю на данные в базе данных, я вижу следующее:
--- !map:MetaData
availability: !map:ActiveSupport::HashWithIndifferentAccess
Sunday: "Yes"
Monday: "No"
Tuesday: "Yes"
validated: true
Проблема возникает, когда я снова пытаюсь получить объект:
user = User.find(id)
user.metadata.validated # <- this is true
user.metadata.availability # <- this is nil
Есть идеи? Я использую Rails 3.1 с Postgresql в качестве хранилища данных.