内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用
我有一个简单的Rails应用程序,我想存储管理员用户在应用程序运行时可以更改的各种配置设置。
我知道我可以将常量等存储在Environment.rb文件中,但是这些常量似乎只有在服务器重新启动时才会加载。
我是否可以在另一个地方定义这些信息,或者将其保存在数据库中更好?
你可以使用数据库。创建一个单独的表,存储需要的键/值参数。该解决方案的缺点是性能下降(每次需要设置时都要查询数据库)。为了解决这个问题,你可以通过像“cache_money”这样的缓存来读写,或者使用“Rails.cache”来创建你自己的。
Setting.foo = 123 Setting.foo # returns 123
还可以管理模型上的设置,例如:
user.settings.color = :red user.settings.color # returns :red