Это старый плагин, но он довольно полнофункциональный, и я использовал его в ряде различных проектов: has_easy
Для Rails3 генератор не будет работать, но вы можетепросто создайте нужную миграцию вручную.
class CreateHasEasyThings < ActiveRecord::Migration
def self.up
create_table :has_easy_things do |t|
t.string :model_type, :null => false
t.integer :model_id, :null => false
t.string :context
t.string :name, :null => false
t.string :value
t.timestamps
end
end
def self.down
drop_table :has_easy_things
end
end
По сути, это работает так, что вы можете связать любую модель с этим объектом, которую вы хотите, и она будет хранить предпочтения, настройки или действительно все, что может бытьсериализуется Rails.
Вы определяете свои настройки или что у вас есть в модели:
class User < ActiveRecord::Base
has_easy :settings do |p|
p.define :language
p.define :theme
end
has_easy :flags do |f|
f.define :is_admin
f.define :is_spammer
end
end
, которая динамически создает набор методов для доступа к настройкам и флагам.
u = User.new
u.settings.language = 'en/us'
u.flags.is_admin = true