Bird
Raised Fist0
Ruby on Railsframework~20 mins

Route definition in routes.rb in Ruby on Rails - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Rails Routing Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What is the output of this route helper?
Given the following route definition in routes.rb, what URL will posts_path generate?

Rails.application.routes.draw do
  resources :posts, only: [:index, :show]
end
A"/posts"
B"/posts/index"
C"/posts/show"
D"/post"
Attempts:
2 left
💡 Hint
The posts_path helper corresponds to the index action URL for posts.
📝 Syntax
intermediate
2:00remaining
Which route definition correctly creates a nested resource?
You want to define routes so that comments belong to posts, accessible via URLs like /posts/:post_id/comments. Which option correctly defines this in routes.rb?
A
resource :posts do
  resource :comments
end
B
resources :posts do
  resources :comments
end
C
resources :comments do
  resources :posts
end
Dresources :posts, :comments
Attempts:
2 left
💡 Hint
Nested resources are defined by placing one resources block inside another.
🔧 Debug
advanced
2:00remaining
Why does this route cause a routing error?
Given this route definition:
get 'profile/:id', to: 'users#show'

And this URL request: /profile
What error will Rails raise?
AArgumentError
BActionController::UrlGenerationError
CNoMethodError
DActionController::RoutingError
Attempts:
2 left
💡 Hint
The URL is missing a required parameter defined in the route.
❓ state_output
advanced
2:00remaining
What is the HTTP verb and path for this custom route?
Consider this route in routes.rb:
post 'subscribe', to: 'newsletters#subscribe'

What HTTP verb and path does this route respond to?
APOST /subscribe
BDELETE /subscribe
CPUT /subscribe
DGET /subscribe
Attempts:
2 left
💡 Hint
The first word in the route definition is the HTTP verb.
🧠 Conceptual
expert
3:00remaining
How many routes are created by this line?
What is the total number of routes generated by this line in routes.rb?
resources :articles, only: [:index, :show, :create, :update, :destroy]
A3
B7
C5
D6
Attempts:
2 left
💡 Hint
Each action in the only list creates one route.

Practice

(1/5)
1. What is the purpose of defining routes in the routes.rb file in a Rails application?
easy
A. To manage user sessions
B. To write database queries
C. To style the web pages
D. To connect URLs to specific controller actions

Solution

  1. Step 1: Understand the role of routes in Rails

    Routes define how incoming web requests are matched to controller actions.
  2. Step 2: Identify the correct purpose

    Connecting URLs to controller actions allows the app to respond correctly to user requests.
  3. Final Answer:

    To connect URLs to specific controller actions -> Option D
  4. Quick Check:

    Routes link URLs to actions [OK]
Hint: Routes map URLs to controller actions [OK]
Common Mistakes:
  • Confusing routes with database queries
  • Thinking routes handle styling
  • Assuming routes manage sessions
2. Which of the following is the correct syntax to define a GET route for the URL /home that maps to the index action of the pages controller?
easy
A. route get '/home' => 'pages#index'
B. get 'pages#index', to: '/home'
C. get '/home', to: 'pages#index'
D. post '/home', to: 'pages#index'

Solution

  1. Step 1: Recall the syntax for GET routes in Rails

    The correct syntax is get 'url', to: 'controller#action'.
  2. Step 2: Match the URL and controller#action correctly

    get '/home', to: 'pages#index' correctly uses get '/home', to: 'pages#index'.
  3. Final Answer:

    get '/home', to: 'pages#index' -> Option C
  4. Quick Check:

    GET route syntax = get 'url', to: 'controller#action' [OK]
Hint: Use get 'url', to: 'controller#action' for GET routes [OK]
Common Mistakes:
  • Swapping URL and controller#action positions
  • Using post instead of get for GET routes
  • Incorrect syntax like 'route get'
3. Given the following route definition in routes.rb:
resources :articles, only: [:index, :show]
What URLs will be available and which controller actions will they map to?
medium
A. /articles (GET) -> articles#index and /articles/:id (GET) -> articles#show
B. /articles/new (GET) -> articles#new and /articles/:id/edit (GET) -> articles#edit
C. /articles (POST) -> articles#create and /articles/:id (PATCH) -> articles#update
D. /articles/:id (DELETE) -> articles#destroy and /articles (GET) -> articles#index

Solution

  1. Step 1: Understand the resources with only option

    It limits routes to only index and show actions.
  2. Step 2: Identify URLs and actions for index and show

    index maps to GET /articles, show maps to GET /articles/:id.
  3. Final Answer:

    /articles (GET) -> articles#index and /articles/:id (GET) -> articles#show -> Option A
  4. Quick Check:

    resources with only index, show = GET /articles and GET /articles/:id [OK]
Hint: Only index and show create GET /collection and GET /collection/:id [OK]
Common Mistakes:
  • Assuming all RESTful routes are created
  • Confusing HTTP verbs for actions
  • Mixing up new/edit with index/show
4. Identify the error in this route definition:
get '/profile', controller: 'users', action: 'show'
medium
A. URL should not start with a slash
B. Missing 'to:' keyword before controller#action
C. Should use 'post' instead of 'get'
D. Controller name should be capitalized

Solution

  1. Step 1: Check correct syntax for get route with controller and action

    The correct syntax uses to: 'controller#action', not separate keys.
  2. Step 2: Identify the missing 'to:' keyword

    The given code misses to: and incorrectly uses separate keys.
  3. Final Answer:

    Missing 'to:' keyword before controller#action -> Option B
  4. Quick Check:

    Use get '/url', to: 'controller#action' [OK]
Hint: Use 'to:' keyword for controller#action in routes [OK]
Common Mistakes:
  • Omitting 'to:' keyword
  • Using wrong HTTP verb
  • Incorrect URL format
5. You want to create routes for a blog with posts and nested comments. Which route definition correctly creates RESTful routes for posts and nested comments inside routes.rb?
hard
A. resources :posts do resources :comments end
B. resources :posts, comments: true
C. resource :posts do resource :comments end
D. get '/posts/:post_id/comments', to: 'comments#index' only

Solution

  1. Step 1: Understand nested resources syntax

    Nested resources are defined by placing one resources block inside another.
  2. Step 2: Identify correct nested syntax for posts and comments

    resources :posts do resources :comments end correctly nests comments inside posts using a block.
  3. Final Answer:

    resources :posts do resources :comments end -> Option A
  4. Quick Check:

    Nested resources use block syntax [OK]
Hint: Nest resources inside block for nested routes [OK]
Common Mistakes:
  • Using singular 'resource' instead of plural 'resources'
  • Trying to pass nested resources as options
  • Defining only one route manually
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