How to create a new environment in Ruby on Rails?
Solution 1:
Assuming you want create the hudson
environment.
- Create a new environment file in
config/environments/hudson.rb
. You can start by cloning an existing one, for instanceconfig/environments/test.rb
. - Add a new configuration block in
config/database.yml
for your environment. - Update any other configuration file you might have under the
config
folder with your new environment, some gems create their ownymls
under theconfig
folder. - That's all.
Now you can start the server
rails server -e hudson
or run the console
rails console hudson
And so on.
If you are using an older version of Rails, the commands are
ruby script/server -e hudson
ruby script/console hudson
Solution 2:
Updated Answer for Rails 5
Create new environment file:
config/environments/staging.rb
Modify the following files to add the environment key 'staging'
config/cable.yml
config/database.yml
config/secrets.yml
Gemfile (incase you have stage dependent gems)
The new environments can now be used as usual for eg:
rails server -e staging
rails console staging
Or to do conditional checks:
rails console staging, Rails.env.staging?
Good place to start for creating new environment and to modify these files is to copy production settings.
Solution 3:
If you're using webpacker in your Rails 5 app, also make sure to update your config/webpacker.yml
. If you forget to add your new environment to config/webpacker.yml
, it will just fall back to using your production config.