Bird
Raised Fist0
Ruby on Railsframework~10 mins

Route definition in routes.rb in Ruby on Rails - Interactive Code Practice

Choose your learning style10 modes available
Practice - 5 Tasks
Answer the questions below
1fill in blank
easy

Complete the code to define a root route pointing to the home controller's index action.

Ruby on Rails
root to: '[1]'
Drag options to blanks, or click blank then click option'
A"main#index"
B"home#index"
C"home#index_action"
D"index#home"
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping controller and action names.
Using incorrect action names like 'index_action'.
Using a controller name that doesn't exist.
2fill in blank
medium

Complete the code to define RESTful routes for the articles resource.

Ruby on Rails
resources :[1]
Drag options to blanks, or click blank then click option'
Aarticles
Bcomments
Cposts
Dusers
Attempts:
3 left
💡 Hint
Common Mistakes
Using singular resource names with 'resources'.
Using unrelated resource names.
3fill in blank
hard

Fix the error in the custom route definition to map GET /profile to users controller's show action.

Ruby on Rails
get '/profile', to: '[1]'
Drag options to blanks, or click blank then click option'
A"users#show"
B"profile#show"
C"users#profile"
D"show#users"
Attempts:
3 left
💡 Hint
Common Mistakes
Swapping controller and action names.
Using a non-existent controller or action.
4fill in blank
hard

Fill both blanks to define a named route 'login' that maps GET /login to sessions controller's new action.

Ruby on Rails
get '/login', to: '[1]', as: '[2]'
Drag options to blanks, or click blank then click option'
A"sessions#new"
B"users#new"
C"login"
D"signin"
Attempts:
3 left
💡 Hint
Common Mistakes
Using wrong controller or action in 'to:'.
Using incorrect or unrelated names in 'as:'.
5fill in blank
hard

Fill all three blanks to define a nested resource where comments belong to posts.

Ruby on Rails
resources :[1] do
  resources :[2], only: [:[3]]
end
Drag options to blanks, or click blank then click option'
Aposts
Bcomments
Ccreate
Dusers
Attempts:
3 left
💡 Hint
Common Mistakes
Mixing up the order of nested resources.
Using incorrect action names in 'only:'.

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