处理静态数据集(非动态)的最佳方式是什么?
例如,假设您有一个包含 10 个不同实例的模型,每个实例都是唯一的,但在您的应用程序的整个生命周期中都不会改变。创建一个 activerecord 模型并将此数据存储在数据库中似乎有些过分,但创建一个通用类并将此数据存储在代码中似乎很丑陋。
什么是公认的最佳实践?
示例:
您有一个费率和一个用户。用户可以有 1-10 的等级,当等级改变时,费率改变。费率可能有其他信息,因此简单地将它存储为用户的属性可能比它的值(value)更麻烦。将它与 Rate 联系起来或像这样将其创建为 User 上的方法是否有意义:
def rate
case self.level
when 1:
{ value: "foo", something: "bar", else: "baz" }
when 2:
# etc
end
end
似乎这两种解决方案都不是理想的,但我不确定是否还有其他理想的解决方案。
最佳答案
我会将此信息存储在 YAML 文件中。你可以使用 RailsConfig gem并像这样创建一个 YAML 文件
level:
1:
some: value
another: value
2:
some: second value
another: second value
然后访问它
rate = 2
val = Settings.level[rate.to_s].some
(我不完全确定 YAML 中数字作为键,也许你必须转义它们)
关于ruby-on-rails - Rails 静态数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13382606/