Bird
Raised Fist0
Ruby on Railsframework~20 mins

Controller generation in Ruby on Rails - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Rails Controller Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ component_behavior
intermediate
2:00remaining
What is the default action created by rails generate controller?
You run rails generate controller Products. Which action is created by default in the generated controller?
AA <code>new</code> action is created by default.
BAn <code>index</code> action is created by default.
CA <code>show</code> action is created by default.
DNo actions are created by default; you must specify them explicitly.
Attempts:
2 left
💡 Hint
Think about what happens if you don't specify any actions when generating a controller.
📝 Syntax
intermediate
2:00remaining
Which command generates a controller with index and show actions?
Select the correct Rails command to generate a controller named Articles with index and show actions.
Arails generate controller Articles index show
Brails generate controller Articles --actions=index,show
Crails generate controller Articles -a index show
Drails generate controller Articles --with=index show
Attempts:
2 left
💡 Hint
Check the official Rails generator syntax for specifying actions.
❓ state_output
advanced
2:00remaining
What files are created by rails generate controller Users new edit?
After running rails generate controller Users new edit, which of the following files is NOT created?
Aapp/models/user.rb
Bapp/views/users/new.html.erb
Capp/views/users/edit.html.erb
Dapp/controllers/users_controller.rb
Attempts:
2 left
💡 Hint
Consider what the controller generator creates versus the model generator.
🔧 Debug
advanced
2:00remaining
Why does rails generate controller Posts show fail with uninitialized constant PostsController error?
You ran rails generate controller Posts show but when visiting /posts/show you get uninitialized constant PostsController. What is the most likely cause?
AThe <code>show</code> action is missing inside <code>PostsController</code>.
BThe route for <code>/posts/show</code> is missing in <code>config/routes.rb</code>.
CThe controller file was not saved or generated properly.
DThe model <code>Post</code> is not defined.
Attempts:
2 left
💡 Hint
The error means Rails cannot find the controller class at all.
🧠 Conceptual
expert
2:00remaining
What is the effect of adding --skip-routes when generating a controller?
You run rails generate controller Comments index --skip-routes. What is the effect of the --skip-routes option?
AIt skips generating the controller file but creates views and routes.
BIt prevents Rails from adding a route for the <code>index</code> action automatically.
CIt disables generating view templates for the controller actions.
DIt skips creating the controller test files.
Attempts:
2 left
💡 Hint
Think about what Rails normally does with routes when generating a controller.

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

  1. Step 1: Understand the purpose of the command

    The rails generate controller command is used to create a new controller in a Rails app.
  2. Step 2: Identify what files are created

    This command creates a controller file and also generates view files for the actions specified.
  3. Final Answer:

    Creates a new controller file with specified actions and related view files. -> Option D
  4. 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

  1. Step 1: Identify the correct command keyword

    The correct command to generate a controller is rails generate controller.
  2. Step 2: Check the controller name and actions

    Controller names are capitalized (e.g., Products) and actions follow after the name.
  3. Final Answer:

    rails generate controller Products index show -> Option A
  4. Quick Check:

    Correct syntax = rails generate controller + ControllerName + actions [OK]
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

  1. 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.
  2. Step 2: Identify the files created for actions

    Actions new and edit generate corresponding view files new.html.erb and edit.html.erb.
  3. Final Answer:

    Controller file articles_controller.rb and views new.html.erb and edit.html.erb. -> Option C
  4. 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

  1. Step 1: Check the controller name capitalization

    Rails expects controller names to be capitalized (e.g., Users), lowercase causes errors.
  2. Step 2: Verify command correctness

    The command rails generate controller Users show is correct; show is a valid action.
  3. Final Answer:

    Controller name should be capitalized as Users. -> Option A
  4. 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

  1. 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).
  2. Step 2: Identify the correct command syntax

    The correct syntax uses capitalized names with :: to separate namespace and controller name.
  3. Final Answer:

    rails generate controller Admin::Dashboard index stats -> Option B
  4. 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 unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard