вы можете сделать следующее:
добавьте атрибут «extras», который будет доступен как Hash, и который будет хранить любые дополнительные / динамические атрибуты, а затем скажите Rails, чтобы он сохранял этот Hash через JSON в ActiveRecord, Mongo или любом другом используемом вами
например:.
class AddExtrasToUsers < ActiveRecord::Migration
def self.up
add_column :users, :extras, :text # do not use a binary type here! (rails bug)
end
...
end
затем в модели добавьте оператор для «сериализации» этого нового атрибута - например, это означает, что он сохраняется как JSON
class User < ActiveRecord::Base
...
serialize :extras
...
end
Теперь вы можете сделать это:
u = User.find 3
u.extras[:status] = 'valid'
u.save
Вы также можете добавить немного магии в модель User, чтобы посмотреть на дополнительные функции Hash, если получит вызов метода method_missing ()
Смотрите также:
Google "Rails 3 serialize"