5.5. Analyzing the Controller

Controllers are stored in app\controllers, so you can find your Articles controller in app\controllers\articles_controller.rb.

Note how the singular resource (that is, article) passed to the scaffold generator created a model that is singular and a controller that is plural. It is customary for RESTful controllers to be plural, because when you send a GET request for /articles or /articles.xml you are expecting to get a collection of items in return. Issuing a /article or /article.xml to obtain a series of articles doesn't seem as logical.

All of the code for your controller exists within the following class definition:

class ArticlesController < ApplicationController
  # ...
end

As you can see, the class ArticlesController inherits from ApplicationController. The Application controller is an application-wide controller, and all the controllers that you define inherit from it. You can find its definition in app\controllers\application.rb. ApplicationController in turn inherits from ActionController::Base.

Let's tackle each action within ArticlesController, one at a time.

5.5.1. index

The index action is there to list all the existing articles. This is how it is defined:

# GET /articles
# GET /articles.xml
def index
  @articles = Article.find(:all)

  respond_to do |format|
    format.html # index.html.erb
    format.xml  { render :xml => @articles }
  end
end

The two comments are there to remind you that a GET /articles or GET /articles.xml request would lead to ...

Get Ruby on Rails® for Microsoft Developers now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.