Если в вашей таблице профилей есть столбец с именем attributes
типа text
class AddAttributesToProfile < ActiveRecord::Migration
def self.up
add_column :profiles, :attributes, :text
end
def self.down
remove_column :profiles, :attributes
end
end
Тогда вы можете использовать метод сериализации в вашей модели:
class Profile < ActiveRecord::Base
serialize :attributes, Hash
end
Это будетПозволяет написать код, подобный следующему:
profile.attributes = { :education => ["Chef degree", true], :hobby => ["Cook", false] }
profile.save
Хеш будет сериализован в формате YAML.
Редактировать: операции CRUD
Чтобы добавить или изменить образование:
profile.attributes[:education] = ["Another title", true] # the boolean here represents the visibility
Чтобы запросить все видимые атрибуты:
profile.attributes.each{|key, value| print "#{key.to_s.capitalize} : #{value.first}" if value.second}
Чтобы удалить образование:
profile.attributes.delete :education