如何使用 database.yml 为每个环境定义 json 文件

How to use database.yml define json file for each environment

我正在 rails 中处理 json 文件格式。 我喜欢在 config/databse.yml(或更好的地方)中使用环境来定义要在应用程序中使用的 json 文件。 但是没有头绪,找不到任何样本。 请帮忙。

helper 中的现有代码如下

def get_table(foo)
  get_data = if [:production, :sandbox].include?(Rails.env)
    File.read("support/product.json")
  else
    File.read("support/sample.json")
  end
  JSON.parse(get_data)
end

如果我的理解正确,那么您是在尝试根据当前环境加载 JSON 文件吗?我不确定 JSON 文件是否真的是您正在寻找的那种数据存储……但那是另一个问题。

对于您的情况,我会使用环境变量来设置在应用程序执行期间要使用的文件名。

将助手更改为:

def get_table
  database_content_from_file = File.read(ENV['database_file'])
  JSON.parse(get_data)
end

您现在可以在每种不同类型的环境中设置环境变量 'database_file'。这可以通过设置系统范围的变量或使用像 https://github.com/laserlemon/figaro 这样的 gem 来完成(我强烈建议您使用)。

有了这个,你可以在你的开发环境中将 ENV['database_file'] 设置为 'support/sample.json' 并将其设置为 'support/product.json' 生产中。

我希望这能回答您的问题。如果不是,请以更容易理解的方式重新表述您的问题。