0
0
Ruby on Railsframework~5 mins

Environment configuration files in Ruby on Rails

Choose your learning style9 modes available
Introduction

Environment configuration files help your Rails app use different settings for development, testing, and production. This keeps your app safe and working well in each situation.

When you want to use a different database for development and production.
When you need to hide secret keys or passwords from your code.
When you want to change how your app behaves in testing without affecting real users.
When you want to enable debugging only in development.
When deploying your app to a live server with different settings.
Syntax
Ruby on Rails
# config/environments/development.rb
Rails.application.configure do
  config.cache_classes = false
  config.eager_load = false
  config.consider_all_requests_local = true
  # other settings...
end
Each environment has its own file inside config/environments/ folder.
You write Ruby code inside a block passed to Rails.application.configure.
Examples
In development, code reloads on every request and shows full error reports.
Ruby on Rails
# config/environments/development.rb
Rails.application.configure do
  config.cache_classes = false
  config.consider_all_requests_local = true
end
In production, code is cached and errors are hidden from users.
Ruby on Rails
# config/environments/production.rb
Rails.application.configure do
  config.cache_classes = true
  config.eager_load = true
  config.consider_all_requests_local = false
end
In test, code is cached but eager loading is off to speed up tests.
Ruby on Rails
# config/environments/test.rb
Rails.application.configure do
  config.cache_classes = true
  config.eager_load = false
  config.consider_all_requests_local = true
end
Sample Program

This file sets development environment settings. Code reloads on each request, and detailed errors show in the browser.

Ruby on Rails
# config/environments/development.rb
Rails.application.configure do
  config.cache_classes = false
  config.eager_load = false
  config.consider_all_requests_local = true
  config.action_mailer.raise_delivery_errors = false
end

# To see the effect, run Rails server in development mode and check error pages and code reload behavior.
OutputSuccess
Important Notes

Never put real passwords or secrets directly in these files. Use environment variables or Rails credentials instead.

Changing these files requires restarting the Rails server to take effect.

Use Rails.env in your code to check the current environment.

Summary

Environment files let Rails apps behave differently in development, test, and production.

They live in config/environments/ and use Ruby code to set options.

Use them to improve safety, performance, and debugging for each environment.