How-to: Deploy Ruby on Rails in a subdirectory and not in root

Normally one would deploy their rails application in the root directory (top-level) ie where the domain is, for example…

www.example.com

However, you may want to deploy your app in a subdirectory such as…

www.example.com/your_app

You may want to do this if you want to deploy several applications on the same domain or temporarily for testing purposes. So heres what to do. Naviagate to the environment.rb file found here…

root | configuration | environment.rb

Open the file in your favourite text editor. Add the relative url configuration to your config as shown below. I added it to the end of the do statement.

Rails::Initializer.run do |config|
  config.action_controller.relative_url_root = "/your_app"
end

This setups the environment for rails to now run with url root of your_app.

Happy deploying!