我几乎没有包含大量记录的大型数据库(看起来像 city-city-price)。我还有十几个修改价格的参数。我应该在哪里保存这个参数?我看到 3 个选项:
- 为每个参数创建带有字段的数据库(但这将是只有一条记录的数据库并且可扩展性不好)
- 用一个字段创建数据库并为每个参数记录(但我应该记住每条记录的含义)
- 控制器中的硬编码参数
所有选项似乎都不优雅。这种情况还有其他好的解决方案吗?
我几乎没有包含大量记录的大型数据库(看起来像 city-city-price)。我还有十几个修改价格的参数。我应该在哪里保存这个参数?我看到 3 个选项:
所有选项似乎都不优雅。这种情况还有其他好的解决方案吗?
我假设您想将固定参数存储在某处,例如城市名称或价格货币。这些是项目列表而不是动态变量。
处理它的标准方法是使用像 yaml 这样的配置文件。这使您能够将键映射到参数的值。
如果适合,我建议您查看YAML 配置文件railscast:
否则,您还可以创建一个新模型来保留数据库中的所有值。例如,如果您想在生产环境中动态更改列表,这种选择可能会更好。
YAML 是一种在整个应用程序中处理某些值的好方法,无需任何模型关联。
否则,只需创建一个类似的文件config/initializers/constants_file.rb
并将值放在该文件中,以便在重新启动服务器后可以在任何地方访问这些值。
例如,在config/initializers/constants_file.rb
我有以下
CURRENCY_TYPES = {:city1 => "value1", :city2 => "value2", ...}
您可以从CURRENCY_TYPES[:city1]等应用程序的任何位置访问它。
或者您仍然可以在模型中创建一个常量,如果需要,您可以使用它。