What is the purpose of the routes.rb file in a Rails application?
The routes.rb file defines how URLs map to controller actions. It tells Rails what code to run when a user visits a specific web address.
Click to reveal answer
beginner
How do you define a simple route that maps the URL /home to the index action of the home controller?
You write: get '/home', to: 'home#index' This means when someone visits /home, Rails runs the index method in the home controller.
Click to reveal answer
intermediate
What does the resources :posts line do in routes.rb?
It creates all the standard routes for a resource named posts. This includes routes for showing, creating, editing, updating, and deleting posts automatically.
Click to reveal answer
beginner
Explain the difference between get and post in route definitions.
get defines a route for retrieving data (like showing a page). post defines a route for sending data to the server (like submitting a form).
Click to reveal answer
beginner
How can you set the root URL (homepage) of your Rails app in routes.rb?
Use the root method like this: root 'welcome#index' This means the homepage URL / runs the index action of the welcome controller.
Click to reveal answer
What does this route do? get '/about', to: 'pages#about'
AMaps the URL /about to the about action in pages controller
BCreates a new page called about
CDeletes the about page
DRedirects /about to the home page
✗ Incorrect
The route connects the URL /about to the about method inside the pages controller.
Which HTTP method is used to submit form data in Rails routes?
Apost
Bget
Cput
Ddelete
✗ Incorrect
post is used to send data to the server, like submitting forms.
What does resources :users generate?
AOnly the show route for users
BA single route for creating users
CAll standard RESTful routes for users
DNo routes, just a placeholder
✗ Incorrect
It creates all common routes like index, show, new, edit, create, update, and destroy for users.
How do you set the homepage route in Rails?
Astart 'welcome#index'
Bhome 'welcome#index'
Cget '/', to: 'welcome#index'
Droot 'welcome#index'
✗ Incorrect
The root method sets the homepage route.
Which file do you edit to define routes in a Rails app?
Aapplication.rb
Broutes.rb
Cconfig.yml
Ddatabase.rb
✗ Incorrect
Routes are defined in the config/routes.rb file.
Describe how you would create a route for a 'contact' page that shows a form using the 'pages' controller and 'contact' action.
Think about how to connect a URL to a controller action using get.
You got /3 concepts.
Explain what the resources method does in Rails routing and why it is useful.
It saves time by generating many routes for common actions.
You got /3 concepts.
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
Step 1: Understand the role of routes in Rails
Routes define how incoming web requests are matched to controller actions.
Step 2: Identify the correct purpose
Connecting URLs to controller actions allows the app to respond correctly to user requests.
Final Answer:
To connect URLs to specific controller actions -> Option D
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
Step 1: Recall the syntax for GET routes in Rails
The correct syntax is get 'url', to: 'controller#action'.
Step 2: Match the URL and controller#action correctly
get '/home', to: 'pages#index' correctly uses get '/home', to: 'pages#index'.
Final Answer:
get '/home', to: 'pages#index' -> Option C
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
Step 1: Understand the resources with only option
It limits routes to only index and show actions.
Step 2: Identify URLs and actions for index and show
index maps to GET /articles, show maps to GET /articles/:id.
Final Answer:
/articles (GET) -> articles#index and /articles/:id (GET) -> articles#show -> Option A
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
Step 1: Check correct syntax for get route with controller and action
The correct syntax uses to: 'controller#action', not separate keys.
Step 2: Identify the missing 'to:' keyword
The given code misses to: and incorrectly uses separate keys.
Final Answer:
Missing 'to:' keyword before controller#action -> Option B
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
Step 1: Understand nested resources syntax
Nested resources are defined by placing one resources block inside another.
Step 2: Identify correct nested syntax for posts and comments
resources :posts do
resources :comments
end correctly nests comments inside posts using a block.
Final Answer:
resources :posts do
resources :comments
end -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.