Зачем вам это нужно конвертировать в OpenStruct и сохранить как yaml в БД. Вместо этого JSON, преобразованный в хеш, сохраненный, поскольку yaml делает то же самое без дополнительных затрат на открытую структуру.
============================ ОБНОВЛЕНО [START]
у вас уже есть решение в вашем коде. посмотрите на это
class Survey < ActiveRecord::Base
serialize :content, Hash
end
Здесь вы сериализуете контент. право!! Таким образом, он автоматически преобразует назначенный хэш в yaml перед сохранением. Итак, вот какое-то задание
survey = Survey.new({:content => {:first => "any hash"}})
survey.save!
Теперь, когда вы снова получите доступ к нему
survey.content
#=> {:first => "any hash"}
просто все как есть. Вам не нужно беспокоиться о преобразовании yaml и обратно, Rails позаботится об этом.
============================ ОБНОВЛЕНО [END]