1

我几乎没有包含大量记录的大型数据库(看起来像 city-city-price)。我还有十几个修改价格的参数。我应该在哪里保存这个参数?我看到 3 个选项:

  • 为每个参数创建带有字段的数据库(但这将是只有一条记录的数据库并且可扩展性不好)
  • 用一个字段创建数据库并为每个参数记录(但我应该记住每条记录的含义)
  • 控制器中的硬编码参数

所有选项似乎都不优雅。这种情况还有其他好的解决方案吗?

4

2 回答 2

1

我假设您想将固定参数存储在某处,例如城市名称或价格货币。这些是项目列表而不是动态变量。

处理它的标准方法是使用像 yaml 这样的配置文件。这使您能够将键映射到参数的值。

如果适合,我建议您查看YAML 配置文件railscast:

否则,您还可以创建一个新模型来保留数据库中的所有值。例如,如果您想在生产环境中动态更改列表,这种选择可能会更好。

于 2013-03-28T08:38:14.373 回答
1

YAML 是一种在整个应用程序中处理某些值的好方法,无需任何模型关联。

否则,只需创建一个类似的文件config/initializers/constants_file.rb并将值放在该文件中,以便在重新启动服务器后可以在任何地方访问这些值。

例如,在config/initializers/constants_file.rb我有以下

CURRENCY_TYPES = {:city1 => "value1", :city2 => "value2", ...}

您可以从CURRENCY_TYPES[:city1]等应用程序的任何位置访问它。

或者您仍然可以在模型中创建一个常量,如果需要,您可以使用它。

于 2013-03-28T09:31:06.633 回答