В моей модели User есть сериализованное поле с именем options (типа Hash). Поле параметров в большинстве случаев ведет себя как хэш. Когда я преобразую объект пользователя в XML, поле 'параметры' сериализуется как тип YAML, а не как Hash.
Я отправляю результат Flash-клиенту через REST. Такое поведение вызывает проблемы на стороне клиента. Есть ли способ решить эту проблему?
class User < ActiveRecord::Base
serialize :options, Hash
end
u = User.first
u.options[:theme] = "Foo"
u.save
p u.options # prints the Hash
u.to_xml # options is serialized as a yaml type:
# <options type=\"yaml\">--- \n:theme: Foo\n</options>
EDIT:
Я работаю над этой проблемой, передавая блок to_xml. (Аналогично решению, предложенному molf)
u.to_xml(:except => [:options]) do |xml|
u.options.to_xml(:builder => xml, :skip_instruct => true, :root => 'options')
end
Мне интересно, есть ли лучший способ.