How to Deploy Rails Application in Ruby on Rails Easily
To deploy a
Ruby on Rails application, you typically prepare your app by setting environment variables and database configs, then use a platform like Heroku or tools like Capistrano to push your code and start the server. Deployment involves running commands such as git push heroku main or cap production deploy to make your app live.Syntax
Deployment commands vary by platform but follow a pattern:
- Heroku: Use
git push heroku mainto send your code to Heroku's servers. - Capistrano: Use
cap production deployto automate deployment to your server. - Environment setup: Set environment variables and database configs before deploying.
bash
git push heroku main # or for Capistrano cap production deploy
Example
This example shows deploying a Rails app to Heroku. It assumes you have a Git repo and Heroku CLI installed.
bash
# 1. Login to Heroku heroku login # 2. Create a new Heroku app heroku create my-rails-app # 3. Push your code to Heroku git push heroku main # 4. Run database migrations on Heroku heroku run rails db:migrate # 5. Open the app in your browser heroku open
Output
Creating app... done, ⬢ my-rails-app
Enumerating objects: 10, done.
Counting objects: 100% (10/10), done.
Delta compression using up to 4 threads
Compressing objects: 100% (8/8), done.
Writing objects: 100% (10/10), 1.2 KiB | 1.2 MiB/s, done.
Total 10 (delta 2), reused 0 (delta 0)
remote: -----> Ruby app detected
remote: -----> Installing dependencies using bundler 2.3.7
remote: -----> Installing node-v18.16.0-linux-x64
remote: -----> Detecting rake tasks
remote: -----> Preparing app for Rails asset pipeline
remote: -----> Running: rake assets:precompile
remote: -----> Launching...
remote: Released v1
remote: https://my-rails-app.herokuapp.com/ deployed to Heroku
Running rails db:migrate on ⬢ my-rails-app... up, run.1234
== 20230601000000 CreateUsers: migrating ======================================
-- create_table(:users)
-> 0.0123s
== 20230601000000 CreateUsers: migrated (0.0124s) =============================
Opening browser to https://my-rails-app.herokuapp.com/
Common Pitfalls
Common mistakes when deploying Rails apps include:
- Not setting environment variables like
RAILS_ENVor database URLs. - Forgetting to run database migrations on the server.
- Ignoring asset precompilation errors.
- Using development gems in production environment.
Always check logs with heroku logs --tail or server logs to debug.
bash
## Wrong: Forgetting to migrate database # After deployment, app crashes due to missing tables ## Right: Run migrations heroku run rails db:migrate
Quick Reference
| Step | Command | Description |
|---|---|---|
| Login to Heroku | heroku login | Authenticate your Heroku account |
| Create app | heroku create | Create a new Heroku app |
| Push code | git push heroku main | Deploy your code to Heroku |
| Run migrations | heroku run rails db:migrate | Update database schema |
| Open app | heroku open | View your live app in browser |
Key Takeaways
Use platforms like Heroku or tools like Capistrano to deploy Rails apps easily.
Always set environment variables and run database migrations after deployment.
Check logs to troubleshoot deployment issues quickly.
Precompile assets and avoid development gems in production.
Follow deployment steps in order: login, create app, push code, migrate, open.