Bird
Raised Fist0
Ruby on Railsframework~20 mins

Heroku deployment in Ruby on Rails - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Heroku Deployment Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What happens when you run heroku run rails db:migrate?

After deploying a Rails app to Heroku, you run heroku run rails db:migrate. What does this command do?

AIt runs the database migrations on the Heroku production database.
BIt runs migrations locally on your computer's database.
CIt restarts the Heroku app without running migrations.
DIt deletes the Heroku database and creates a new one.
Attempts:
2 left
💡 Hint

Think about where the app is running and where the database lives on Heroku.

📝 Syntax
intermediate
2:00remaining
Which Procfile entry correctly starts a Rails web server on Heroku?

You want to tell Heroku how to start your Rails app web server. Which Procfile line is correct?

Aweb: rails server -p 3000
Bweb: bundle exec rails server -p $PORT
Cweb: rails start
Dweb: bundle exec puma
Attempts:
2 left
💡 Hint

Heroku assigns a port dynamically. The command must use that port.

🔧 Debug
advanced
2:00remaining
Why does this Heroku deployment fail with a PG::ConnectionBad error?

You deployed your Rails app to Heroku but get this error in logs: PG::ConnectionBad: could not connect to server. What is the most likely cause?

AThe <code>DATABASE_URL</code> environment variable is missing or incorrect.
BThe Rails app is missing the <code>sqlite3</code> gem in production.
CThe <code>Procfile</code> is missing the web server command.
DThe <code>Gemfile.lock</code> is not committed to git.
Attempts:
2 left
💡 Hint

Heroku uses DATABASE_URL to connect to the database.

❓ state_output
advanced
2:00remaining
What is the effect of running heroku config:set RAILS_ENV=production?

You run heroku config:set RAILS_ENV=production on your app. What does this change do?

AIt restarts the app without changing any environment variables.
BIt disables asset precompilation during deployment.
CIt sets the environment variable only for your local machine.
DIt sets the Rails environment to production on Heroku, affecting config and logging.
Attempts:
2 left
💡 Hint

Environment variables on Heroku control app behavior in the cloud.

🧠 Conceptual
expert
3:00remaining
Why must you precompile assets before deploying a Rails app to Heroku?

Rails uses asset precompilation before deployment. Why is this step necessary on Heroku?

ATo create database indexes for faster queries on Heroku Postgres.
BTo convert Ruby code into JavaScript for Heroku's server environment.
CTo generate optimized CSS and JavaScript files so the app loads faster in browsers.
DTo install all gems needed by the app before deployment.
Attempts:
2 left
💡 Hint

Think about what assets are and how browsers use them.

Practice

(1/5)
1. What is the main purpose of deploying a Rails app to Heroku?
easy
A. To put the app online without managing servers
B. To write Ruby code faster
C. To create a local database
D. To debug Rails code automatically

Solution

  1. Step 1: Understand Heroku's role

    Heroku is a platform that hosts apps so they can be accessed online without you managing the servers.
  2. Step 2: Compare options

    Options B, C, and D describe development or debugging tasks, not deployment.
  3. Final Answer:

    To put the app online without managing servers -> Option A
  4. Quick Check:

    Heroku deployment = online app hosting [OK]
Hint: Heroku hosts apps online, no server setup needed [OK]
Common Mistakes:
  • Confusing deployment with coding or debugging
  • Thinking Heroku manages local databases
  • Assuming Heroku speeds up writing code
2. Which command is used to push your Rails app code to Heroku?
easy
A. heroku push
B. heroku deploy app
C. rails deploy
D. git push heroku main

Solution

  1. Step 1: Identify the correct git command

    Heroku uses git to receive code. The correct command is 'git push heroku main' to push the main branch.
  2. Step 2: Check other options

    Options A, C, and D are not valid commands for pushing code to Heroku.
  3. Final Answer:

    git push heroku main -> Option D
  4. Quick Check:

    Push code with git push heroku main [OK]
Hint: Use git push heroku main to deploy code [OK]
Common Mistakes:
  • Using 'heroku push' which is invalid
  • Trying 'rails deploy' which doesn't exist
  • Confusing Heroku CLI commands
3. After pushing your Rails app to Heroku, which command runs database migrations on Heroku?
medium
A. heroku run rails db:migrate
B. rails db:migrate
C. git migrate heroku
D. heroku migrate db

Solution

  1. Step 1: Understand migration on Heroku

    To run migrations on Heroku's remote server, you use 'heroku run rails db:migrate'.
  2. Step 2: Check other commands

    'rails db:migrate' runs locally, 'git migrate heroku' and 'heroku migrate db' are invalid commands.
  3. Final Answer:

    heroku run rails db:migrate -> Option A
  4. Quick Check:

    Run migrations remotely with heroku run rails db:migrate [OK]
Hint: Run migrations remotely with heroku run rails db:migrate [OK]
Common Mistakes:
  • Running migrations locally instead of on Heroku
  • Using invalid git commands for migration
  • Confusing command order
4. You pushed your Rails app to Heroku but see an error when opening the app URL. What is a common cause?
medium
A. You did not install Ruby locally
B. You used 'git push origin main' instead of 'git push heroku main'
C. You forgot to run database migrations on Heroku
D. You opened the wrong browser

Solution

  1. Step 1: Identify common deployment errors

    Forgetting to run migrations on Heroku often causes errors because the database schema is not updated.
  2. Step 2: Evaluate other options

    You used 'git push origin main' instead of 'git push heroku main' means code wasn't pushed to Heroku, but question says code was pushed. Options A and D are unrelated to deployment errors.
  3. Final Answer:

    You forgot to run database migrations on Heroku -> Option C
  4. Quick Check:

    Missing migrations cause app errors on Heroku [OK]
Hint: Run migrations after push to avoid errors [OK]
Common Mistakes:
  • Ignoring migrations after deployment
  • Confusing git push origin with heroku
  • Blaming local environment for Heroku errors
5. You want to deploy a Rails app with environment variables for API keys on Heroku. Which is the correct way to set them before deployment?
hard
A. Add keys to config/application.rb file
B. Use 'heroku config:set KEY=value' command
C. Store keys in a local .env file only
D. Push keys directly in your code files

Solution

  1. Step 1: Understand environment variables on Heroku

    Heroku uses 'heroku config:set' to securely store environment variables like API keys.
  2. Step 2: Evaluate other options

    Adding keys to config/application.rb or pushing keys in code risks exposure. Local .env files are not sent to Heroku.
  3. Final Answer:

    Use 'heroku config:set KEY=value' command -> Option B
  4. Quick Check:

    Set env vars securely with heroku config:set [OK]
Hint: Use heroku config:set to add env variables securely [OK]
Common Mistakes:
  • Hardcoding keys in code risking leaks
  • Relying on local .env files for Heroku
  • Editing config/application.rb for secrets
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard