Home > front end >  How to use database.yml define json file for each environment
How to use database.yml define json file for each environment

Time:09-27

I working on json file format in rails. I like to use environment in config/databse.yml (or better place) to define what json file to use in the app. But have no idea, unable to find any sample. Any help please.

Existing code in helper as follow

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

CodePudding user response:

If I understand you correctly then you are trying to load a JSON file based on the current environment? I'm not sure a JSON file is really the kind of data store you are looking for... but that is a different question.

In your case, I would use an environment variable to set the file name that is to be used during the execution of the application.

Change the helper to something like:

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

You can now set the environment variable 'database_file' in each of your different types of environments. This can be done by setting a system-wide variable or using a gem like https://github.com/laserlemon/figaro (which I highly encourage you to use).

With this, you could set ENV['database_file'] to 'support/sample.json' in your development environment and set it to 'support/product.json' in production.

I hope this answers your question. If not please rephrase your question in a manner that is easier to understand.

  • Related