What is the purpose of generating a controller in Rails?
A controller in Rails handles the incoming web requests, processes data, and sends responses back to the user, often by rendering views or redirecting.
Click to reveal answer
beginner
Which Rails command generates a new controller named 'Articles' with actions 'index' and 'show'?
rails generate controller Articles index show
Click to reveal answer
intermediate
What files are created when you generate a controller in Rails?
Rails creates a controller file (e.g., articles_controller.rb), view folders for each action, a helper file, and test files. Routes are not updated automatically.
Click to reveal answer
intermediate
How does Rails connect a controller action to a URL?
Rails uses routes defined in config/routes.rb to map URLs to controller actions, so when a user visits a URL, the matching controller action runs.
Click to reveal answer
beginner
True or False: Generating a controller automatically creates database tables.
False. Controllers handle requests and responses but do not create or modify database tables; that is done by models and migrations.
Click to reveal answer
Which command creates a new controller named 'Users' with an 'edit' action?
Arails generate controller Users edit
Brails new controller Users edit
Crails create controller Users edit
Drails make controller Users edit
✗ Incorrect
The correct syntax to generate a controller with actions is 'rails generate controller ControllerName action1 action2'.
What file does Rails create to define controller actions?
Aapp/views/controller_name/index.html.erb
Bapp/models/controller_name.rb
Cconfig/routes.rb
Dapp/controllers/controller_name_controller.rb
✗ Incorrect
Controller actions are defined inside the controller file located in app/controllers.
Which folder contains the views for a controller's actions?
Aapp/controllers/controller_name
Bapp/views/controller_name
Capp/models/controller_name
Dconfig/views/controller_name
✗ Incorrect
Each controller has a corresponding folder inside app/views where the views for its actions are stored.
Does generating a controller automatically add routes for its actions?
ANo, routes must be added manually or by using resourceful routing.
BYes, routes are always added automatically.
COnly if you specify the --routes option.
DYes, but only for the index action.
✗ Incorrect
Generating a controller does not add routes automatically; you must define routes in config/routes.rb.
What is the role of a controller action in Rails?
ATo define database schema.
BTo store data in the database.
CTo process requests and prepare data for views or redirects.
DTo style the webpage.
✗ Incorrect
Controller actions handle requests, interact with models, and decide what response to send back.
Explain the steps and files involved when you generate a new controller in Rails.
Think about what happens behind the scenes when you run the generate command.
You got /5 concepts.
Describe how a Rails controller connects a user's URL request to the code that runs.
Consider the flow from URL to response.
You got /4 concepts.
Practice
(1/5)
1. What does the rails generate controller command do in a Rails application?
easy
A. Compiles the Rails application for production.
B. Generates a new database table for storing data.
C. Deletes an existing controller and its views.
D. Creates a new controller file with specified actions and related view files.
Solution
Step 1: Understand the purpose of the command
The rails generate controller command is used to create a new controller in a Rails app.
Step 2: Identify what files are created
This command creates a controller file and also generates view files for the actions specified.
Final Answer:
Creates a new controller file with specified actions and related view files. -> Option D
Quick Check:
Controller generation = creates controller and views [OK]
Hint: Controller generator creates controller and views together [OK]
Common Mistakes:
Confusing controller generation with database migration
Thinking it compiles or deletes files
Assuming it only creates views without controller
2. Which of the following is the correct syntax to generate a controller named Products with actions index and show?
easy
A. rails generate controller Products index show
B. rails create controller Products index show
C. rails generate model Products index show
D. rails generate controller products index show
Solution
Step 1: Identify the correct command keyword
The correct command to generate a controller is rails generate controller.
Step 2: Check the controller name and actions
Controller names are capitalized (e.g., Products) and actions follow after the name.
Final Answer:
rails generate controller Products index show -> Option A
Hint: Use 'rails generate controller' with capitalized controller name [OK]
Common Mistakes:
Using 'create' instead of 'generate'
Using 'model' instead of 'controller'
Using lowercase controller name
3. Given the command rails generate controller Articles new edit, which files will be created?
medium
A. Only the controller file articles_controller.rb without views.
B. Model file article.rb and migration for articles table.
C. Controller file articles_controller.rb and views new.html.erb and edit.html.erb.
D. Database schema file and routes for articles.
Solution
Step 1: Understand what the generate controller command creates
It creates a controller file named after the pluralized controller name and view files for each action.
Step 2: Identify the files created for actions
Actions new and edit generate corresponding view files new.html.erb and edit.html.erb.
Final Answer:
Controller file articles_controller.rb and views new.html.erb and edit.html.erb. -> Option C
Quick Check:
Controller + views for actions = Controller file articles_controller.rb and views new.html.erb and edit.html.erb. [OK]
Hint: Controller generator creates views for each action named [OK]
Common Mistakes:
Confusing controller generation with model generation
Expecting database files to be created
Thinking views are not created automatically
4. You run rails generate controller users show but get an error. Which of the following is the most likely cause?
medium
A. Controller name should be capitalized as Users.
B. The action show is not allowed in controllers.
C. You must create a model before generating a controller.
D. The command should be rails create controller users show.
Solution
Step 1: Check the controller name capitalization
Rails expects controller names to be capitalized (e.g., Users), lowercase causes errors.
Step 2: Verify command correctness
The command rails generate controller Users show is correct; show is a valid action.
Final Answer:
Controller name should be capitalized as Users. -> Option A
Quick Check:
Capitalized controller name required [OK]
Hint: Always capitalize controller names in generate command [OK]
Common Mistakes:
Using lowercase controller names
Thinking actions are restricted
Confusing generate with create command
5. You want to generate a controller named Admin::Dashboard with actions index and stats. Which command correctly creates the controller and places it in the admin folder?
hard
A. rails generate controller admin/dashboard index stats
B. rails generate controller Admin::Dashboard index stats
C. rails generate controller Admin_Dashboard index stats
D. rails generate controller admin_dashboard index stats
Solution
Step 1: Understand namespacing in Rails controllers
Using :: in the controller name creates a folder structure for namespacing (e.g., Admin::Dashboard creates admin/dashboard_controller.rb).
Step 2: Identify the correct command syntax
The correct syntax uses capitalized names with :: to separate namespace and controller name.
Final Answer:
rails generate controller Admin::Dashboard index stats -> Option B
Quick Check:
Namespace with :: and capitalized names [OK]
Hint: Use :: for namespaced controllers with capitalized parts [OK]
Common Mistakes:
Using underscores instead of :: for namespaces
Using lowercase names for namespaces
Confusing folder path with command syntax
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.