有没有通过Mongoid在Mongodb中存储项目范围常量的良好常规做法?是否值得将它们保存在数据库中?
答案 0 :(得分:2)
常量是常量。 Pi是一个常数。您不需要数据库,您知道它的价值。但可能你的意思更像是“非常静态且不太可能经常变化的价值”。如果是这种情况,那么将这些值存储在DB中确实是有意义的。这种东西可能有宝石,但在香草Mongoid中,我会做这样的事情:
class Setting
field :_id, type: String
field :value
def self.read_value name
# return value or nil
Setting.where(_id: name).first.try(:value)
end
def self.write_value name, value
where(_id: name).upsert(value: value)
end
end
# usage
num_workers = Setting.read_value 'number_of_workers'
Setting.write_value "upload_dir", '/var/www/uploads'