有很多方法可以在网络数据库中存储网站首选项。但是如果我需要管理数据类型呢?因此,一些首选项将是布尔值,其他字符串则是其他整数。
我如何组织这样的商店?
答案 0 :(得分:1)
我写了一个确实如此的gem,并且最近为Rails 3更新了它:
对于Rails 3:
http://github.com/paulca/configurable_engine
对于Rails 2.3.x
http://github.com/paulca/behavior
享受!
答案 1 :(得分:0)
我对首选项很懒惰,并将数据存储为序列化的JSON或YAML哈希。工作得很好,通常也会保留数据类型。
答案 2 :(得分:0)
我使用了一个包含单行的表,每列代表一个首选项。这使得可以使用不同的数据类型。
为了能够检索首选项,我重写method_missing
以便能够直接从类名检索首选项值而无需实例,如下所示:
class Setting < ActiveRecord::Base
@@instance = self.first
def self.instance
@@instance
end
def self.method_missing(method, *args)
option = method.to_s
if option.include? '='
var_name = option.gsub('=', '')
value = args.first
@@instance[var_name] = value
else
@@instance[option]
end
end
end
因此,要检索设置,您可以使用:
a_setting = Setting.column_name
答案 3 :(得分:-2)
Rails迁移用于创建和更新数据库。