MongoDB中使用Moingoid的常量

时间:2012-12-10 21:56:17

标签: ruby-on-rails mongodb constants mongoid3 database

有没有通过Mongoid在Mongodb中存储项目范围常量的良好常规做法?是否值得将它们保存在数据库中?

1 个答案:

答案 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'