Bird
Raised Fist0
Ruby on Railsframework~20 mins

First Rails application - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Rails Beginner Mastery
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What does this Rails controller action render?
Consider this Rails controller code. What will the browser display when visiting the index action?
Ruby on Rails
class ArticlesController < ApplicationController
  def index
    @articles = ['Ruby', 'Rails', 'MVC']
  end
end
AA plain page showing the list: Ruby, Rails, MVC
BA JSON response with the articles array
CA blank page because no view template is provided
DAn error because there is no explicit render call
Attempts:
2 left
💡 Hint
Rails automatically renders a view matching the action name if no render call is given.
📝 Syntax
intermediate
2:00remaining
Identify the syntax error in this Rails route definition
Which option correctly fixes the syntax error in this routes file snippet?
Ruby on Rails
Rails.application.routes.draw do
  get 'welcome/index'
  root to: 'welcome#index'
  resources :articles
  get 'articles/show/:id' => 'articles#show'
end
AReplace <code>root to: 'welcome#index'</code> with <code>root 'welcome#index'</code>
BAdd a comma after <code>resources :articles</code>
CChange <code>get 'articles/show/:id' => 'articles#show'</code> to <code>get 'articles/:id' => 'articles#show'</code>
DRemove the <code>get 'welcome/index'</code> line
Attempts:
2 left
💡 Hint
Check the URL pattern for the show action in RESTful routes.
❓ state_output
advanced
2:00remaining
What is the output of this Rails view code?
Given the controller sets @name = 'Alice', what will this ERB template output?
Ruby on Rails
<h1>Welcome, <%= @name.upcase %>!</h1>
<p>Today is <%= Date.today.strftime('%A') %>.</p>
A<h1>Welcome, ALICE!</h1><p>Today is Monday.</p>
B<h1>Welcome, Alice!</h1><p>Today is Monday.</p>
C<h1>Welcome, ALICE!</h1><p>Today is <%= Date.today.strftime('%A') %>.</p>
DAn error because <code>Date</code> is not available in views
Attempts:
2 left
💡 Hint
ERB evaluates Ruby code inside <%= %> and Date is accessible in views.
🔧 Debug
advanced
2:00remaining
Why does this Rails form not submit data?
This form in a Rails view does not send data to the controller. What is the cause?
Ruby on Rails
<%= form_with url: articles_path, method: :post do %>
  <%= text_field_tag :title %>
  <%= submit_tag 'Create' %>
<% end %>
AThe form block is missing a variable for the form builder
BThe form_with helper uses remote: true by default, so no page reload occurs
CThe text_field_tag is not inside the form block properly
DThe form_with helper requires a model object to submit data
Attempts:
2 left
💡 Hint
Check the default behavior of form_with regarding remote submission.
🧠 Conceptual
expert
2:00remaining
What is the role of the ApplicationController in a Rails app?
Choose the best description of ApplicationController in a Rails application.
AIt defines the routes and URL mappings for the application
BIt handles database connections and queries for all models
CIt is the main view template that all pages render by default
DIt is the base controller that other controllers inherit from, sharing common behavior and filters
Attempts:
2 left
💡 Hint
Think about inheritance and shared code in controllers.

Practice

(1/5)
1. What command do you use to create a new Rails application folder?
easy
A. rails init myapp
B. rails new myapp
C. rails create myapp
D. rails start myapp

Solution

  1. Step 1: Understand Rails app creation command

    The official command to create a new Rails app is rails new followed by the app name.
  2. Step 2: Match the command with options

    Only rails new myapp uses rails new myapp, which is correct syntax.
  3. Final Answer:

    rails new myapp -> Option B
  4. Quick Check:

    Create app folder = rails new [OK]
Hint: Remember: 'rails new' creates the app folder [OK]
Common Mistakes:
  • Using 'rails start' instead of 'rails new'
  • Confusing 'rails create' with 'rails new'
  • Trying 'rails init' which is not a Rails command
2. Which command starts the Rails server so you can view your app in a browser?
easy
A. rails launch
B. rails start
C. rails run
D. rails server

Solution

  1. Step 1: Identify the command to run the Rails server

    The correct command to start the Rails server is rails server.
  2. Step 2: Compare with options

    Only rails server matches the correct command exactly.
  3. Final Answer:

    rails server -> Option D
  4. Quick Check:

    Start server = rails server [OK]
Hint: Use 'rails server' to launch your app locally [OK]
Common Mistakes:
  • Typing 'rails start' which is invalid
  • Using 'rails run' which does not start the server
  • Trying 'rails launch' which is not a Rails command
3. What will happen if you run rails new blog and then cd blog followed by rails server?
medium
A. A new Rails app named 'blog' is created and the server starts to serve it locally.
B. An error occurs because 'rails server' must be run before 'rails new'.
C. The server starts but shows a blank page because no views are created yet.
D. The command fails because 'cd blog' is not a valid Rails command.

Solution

  1. Step 1: Understand the sequence of commands

    rails new blog creates a new app folder named 'blog'. cd blog moves into that folder. rails server starts the server for that app.
  2. Step 2: Analyze the expected behavior

    Running these commands in order creates the app and starts the server correctly, serving the default Rails welcome page.
  3. Final Answer:

    A new Rails app named 'blog' is created and the server starts to serve it locally. -> Option A
  4. Quick Check:

    rails new + cd + rails server = app runs [OK]
Hint: Create app, enter folder, then start server to see app [OK]
Common Mistakes:
  • Thinking 'rails server' must run before app creation
  • Assuming 'cd blog' is a Rails command instead of shell
  • Expecting an error when running these commands in order
4. You ran rails new myapp but when you try rails server inside the folder, you get an error. What is the most likely cause?
medium
A. You must create a controller before starting the server.
B. You need to run rails start instead of rails server.
C. You forgot to run bundle install to install dependencies.
D. The folder name 'myapp' is invalid for Rails apps.

Solution

  1. Step 1: Identify common setup step after creating app

    After rails new, you usually run bundle install to install gems needed by the app.
  2. Step 2: Understand error cause

    If dependencies are missing, rails server will fail to start due to missing gems.
  3. Final Answer:

    You forgot to run bundle install to install dependencies. -> Option C
  4. Quick Check:

    Missing gems? Run bundle install first [OK]
Hint: Run 'bundle install' after 'rails new' before starting server [OK]
Common Mistakes:
  • Trying 'rails start' which is invalid
  • Thinking a controller is required before server start
  • Believing folder name causes the error
5. You want to create a new Rails app named shop and immediately start the server. Which sequence of commands is correct?
hard
A. rails new shop -> cd shop -> rails server
B. rails create shop -> rails server
C. rails new shop -> rails server
D. cd shop -> rails new shop -> rails server

Solution

  1. Step 1: Create the app folder with correct command

    Use rails new shop to create the app folder named 'shop'.
  2. Step 2: Change directory into the new app folder

    Run cd shop to move into the app folder before starting the server.
  3. Step 3: Start the Rails server inside the app folder

    Run rails server to launch the app locally.
  4. Final Answer:

    rails new shop -> cd shop -> rails server -> Option A
  5. Quick Check:

    Create app, enter folder, start server = correct order [OK]
Hint: Create app, cd into it, then run server [OK]
Common Mistakes:
  • Skipping 'cd' before running server
  • Using 'rails create' which is invalid
  • Running server outside app folder
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