Метод класса serialize
в модели, которая наследуется от ActiveRecord::Base
, возьмет этот столбец / атрибут и при сохранении превратит его в YAML, а при загрузке сделает наоборот. Отлично подходит для хранения базового массива или хеш-объекта в вашей модели.
Для Rails требуется только использование столбца типа text
в базе данных / миграции для сериализованного поля. Поэтому при миграции просто убедитесь, что у вас есть следующее для сериализованного поля (в данном случае settings
):
create_table :accounts do |t|
t.text :settings
end
Тогда в вашей модели это будет так же просто, как добавить вызов к serialize
:
class Account < ActiveRecord::Base
serialize :settings
end
Затем при вызове Account.new(:settings => { :big_head_mode => true, :awesome => true }).save
Rails автоматически сериализует хеш settings
в YAML и сохраняет его в вашей базе данных.
И для ясности, леса не имеют никакого отношения к этому вопросу. После создания каркаса вам все равно нужно добавить вызов к serialize
в вашей модели.