Ruby on rails 3 是否有一个gem来管理每个资源的设置?
我需要一个宝石,可以抽象的资源设置管理。基本上我想要的是Ruby on rails 3 是否有一个gem来管理每个资源的设置?,ruby-on-rails-3,settings,gem,Ruby On Rails 3,Settings,Gem,我需要一个宝石,可以抽象的资源设置管理。基本上我想要的是 @person = Person.find(1) @person.settings <- this gives a hash of key/value pairs associated with this resource 我还需要一种方法来拥有每个人的默认设置,以及一种方法来覆盖特定@Person的默认设置。这些设置应该保存在SQL db中。这是一个旧插件,但功能非常齐全,我在许多不同的项目中使用过它: 对于Rails3,生成器
@person = Person.find(1)
@person.settings <- this gives a hash of key/value pairs associated with this resource
我还需要一种方法来拥有每个人的默认设置,以及一种方法来覆盖特定@Person的默认设置。这些设置应该保存在SQL db中。这是一个旧插件,但功能非常齐全,我在许多不同的项目中使用过它: 对于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 2或rails 3,请查看Ledermann的rails设置gem,它的语法可以获得所有键值对,就像您要求的那样:
son.settings.all
易于添加设置:
son.settings.key = value
您还可以根据设置获取要搜索的activerecord范围。您还可以设置默认设置和全局应用程序范围设置
对于rails 2,您需要使用版本~>1.x并遵循以下文档:
如果需要:事件处理之前和:事件处理之后,请选中这与我需要的非常接近,但似乎不支持Rails3。您是否尝试过Rails3?属性列表不是动态的,即必须根据模型定义。更新了答案,说明如何使其在Rails3中工作。是,特性列表是按模型定义的。您甚至可以在类上定义默认值,然后根据需要在实例中重写它们。这一分支很容易声明,可以在Rails3中开箱即用:
son.settings.all
son.settings.key = value