Bird
Raised Fist0
Ruby on Railsframework~20 mins

Config folder purpose in Ruby on Rails - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Rails Config Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate
1:30remaining
Purpose of the config folder in Rails
What is the main purpose of the config folder in a Rails application?
AIt stores configuration files that set up the application environment and settings.
BIt contains all the database migration files for schema changes.
CIt holds the view templates for rendering HTML pages.
DIt stores the user-uploaded files and assets.
Attempts:
2 left
💡 Hint
Think about where Rails keeps files that control app settings and environment.
❓ component_behavior
intermediate
1:30remaining
Effect of changing config/environments/production.rb
If you modify config/environments/production.rb in a Rails app, what will happen when you deploy to production?
AThe changes will only apply after restarting the Rails server in development.
BThe production environment will use the new settings defined in that file.
CThe development environment will be affected instead of production.
DNo effect, because this file is ignored by Rails.
Attempts:
2 left
💡 Hint
Each environment file controls settings for that specific environment.
📝 Syntax
advanced
2:00remaining
Correct syntax for database config in config/database.yml
Which option shows the correct YAML syntax for defining the default database adapter as PostgreSQL in config/database.yml?
Adefault: adapter: postgresql
Bdefault = { adapter: 'postgresql' }
C
default:
  adapter: postgresql
Ddefault: { adapter: postgresql }
Attempts:
2 left
💡 Hint
YAML uses indentation and colons for key-value pairs.
🔧 Debug
advanced
2:00remaining
Why does Rails ignore changes in config/initializers?
You changed a file in config/initializers but your Rails app does not reflect the change after reload. Why?
AInitializers are only loaded once when the server starts, so you must restart the server.
BInitializers are cached in the browser and need cache clearing.
CInitializers only run in development, not in production.
DInitializers require a database migration to take effect.
Attempts:
2 left
💡 Hint
Think about when initializers run in the Rails lifecycle.
❓ state_output
expert
2:30remaining
Output of Rails config after modifying config/application.rb
Given this snippet in config/application.rb:
module MyApp
  class Application < Rails::Application
    config.time_zone = 'Eastern Time (US & Canada)'
  end
end
What will Rails.application.config.time_zone return at runtime?
ARaises NoMethodError
B'UTC'
Cnil
D'Eastern Time (US & Canada)'
Attempts:
2 left
💡 Hint
The config.time_zone setting sets the app's time zone.

Practice

(1/5)
1. What is the main purpose of the config folder in a Rails application?
easy
A. To hold all the user interface templates
B. To save database records
C. To store setup and configuration files that control how the app behaves
D. To keep images and stylesheets

Solution

  1. Step 1: Understand the role of the config folder

    The config folder contains files that set up how the Rails app runs, like database settings and environment variables.
  2. Step 2: Compare with other folders

    Folders like views hold templates, and assets hold images/stylesheets, so they are not for configuration.
  3. Final Answer:

    To store setup and configuration files that control how the app behaves -> Option C
  4. Quick Check:

    Config folder = setup files [OK]
Hint: Config folder = app setup files, not UI or data [OK]
Common Mistakes:
  • Confusing config with views or assets folders
  • Thinking config stores user data
  • Assuming config holds templates
2. Which of the following files would you expect to find inside the config folder in a Rails app?
easy
A. routes.rb
B. application.html.erb
C. user.rb
D. style.css

Solution

  1. Step 1: Identify typical config files

    The routes.rb file defines URL routes and is always inside the config folder.
  2. Step 2: Recognize other file locations

    Files like application.html.erb are views, user.rb is a model, and style.css is an asset, so they are not in config.
  3. Final Answer:

    routes.rb -> Option A
  4. Quick Check:

    Routes file is in config folder [OK]
Hint: Routes file always lives in config folder [OK]
Common Mistakes:
  • Mixing view files with config files
  • Thinking models are in config
  • Confusing CSS files with config files
3. Given this snippet from a Rails app's config/database.yml file:
development:
  adapter: sqlite3
  database: db/development.sqlite3

production:
  adapter: postgresql
  database: myapp_prod

What does this configuration do?
medium
A. Uses PostgreSQL for both development and production
B. Sets SQLite for development and PostgreSQL for production environments
C. Uses SQLite for both development and production
D. Causes an error because two adapters are listed

Solution

  1. Step 1: Read the environment keys

    The file defines settings separately for development and production environments.
  2. Step 2: Check adapter values per environment

    Development uses SQLite3 adapter; production uses PostgreSQL adapter.
  3. Final Answer:

    Sets SQLite for development and PostgreSQL for production environments -> Option B
  4. Quick Check:

    Different adapters per environment = Sets SQLite for development and PostgreSQL for production environments [OK]
Hint: Check environment keys to see which adapter is used [OK]
Common Mistakes:
  • Assuming one adapter applies to all environments
  • Thinking multiple adapters cause errors
  • Ignoring environment separation
4. You see this error when starting a Rails app:
Missing `secret_key_base` for 'production' environment
Which config file should you check to fix this?
medium
A. config/secrets.yml
B. config/routes.rb
C. config/database.yml
D. config/application.rb

Solution

  1. Step 1: Understand the error message

    The error says the secret key base is missing for production, which is used for security.
  2. Step 2: Identify where secret keys are stored

    Secret keys like secret_key_base are stored in config/secrets.yml.
  3. Final Answer:

    config/secrets.yml -> Option A
  4. Quick Check:

    Secret keys live in secrets.yml [OK]
Hint: Secret keys are in secrets.yml, not routes or database files [OK]
Common Mistakes:
  • Checking routes.rb for secret keys
  • Looking in database.yml for secret_key_base
  • Confusing application.rb with secrets.yml
5. You want your Rails app to behave differently in development and production. Which config folder files would you edit to set environment-specific settings?
hard
A. config/application.rb only
B. config/routes.rb and config/database.yml
C. config/initializers/setup.rb only
D. config/environments/development.rb and config/environments/production.rb

Solution

  1. Step 1: Identify environment-specific config files

    Rails uses separate files in config/environments/ to set different behaviors per environment.
  2. Step 2: Understand roles of other files

    routes.rb sets URL routes, database.yml sets database connections, initializers run on all environments, and application.rb is general config.
  3. Final Answer:

    config/environments/development.rb and config/environments/production.rb -> Option D
  4. Quick Check:

    Environment-specific settings go in environments folder [OK]
Hint: Use environments folder files for per-environment settings [OK]
Common Mistakes:
  • Editing only application.rb for environment changes
  • Changing routes.rb for environment behavior
  • Assuming initializers are environment-specific
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