Module

Resources

Overview

ActionController::Resources are a way of defining RESTful resources. A RESTful resource, in basic terms, is something that can be pointed at and it will respond with a representation of the data requested. In real terms this could mean a user with a browser requests an HTML page, or that a desktop application requests XML data.

RESTful design is based on the assumption that there are four generic verbs that a user of an application can request from a resource (the noun).

Resources can be requested using four basic HTTP verbs (GET, POST, PUT, DELETE), the method used denotes the type of action that should take place.

The Different Methods and their Usage

GET Requests for a resource, no saving or editing of a resource should occur in a GET request POST Creation of resources PUT Editing of attributes on a resource DELETE Deletion of a resource

Examples

# A GET request on the Posts resource is asking for all Posts
GET /posts

# A GET request on a single Post resource is asking for that particular Post
GET /posts/1

# A POST request on the Posts resource is asking for a Post to be created with the supplied details
POST /posts # with => { :post => { :title => "My Whizzy New Post", :body => "I've got a brand new combine harvester" } }

# A PUT request on a single Post resource is asking for a Post to be updated
PUT /posts # with => { :id => 1, :post => { :title => "Changed Whizzy Title" } }

# A DELETE request on a single Post resource is asking for it to be deleted
DELETE /posts # with => { :id => 1 }

By using the REST convention, users of our application can assume certain things about how the data is requested and how it is returned. Rails simplifies the routing part of RESTful design by supplying you with methods to create them in your routes.rb file.

Read more about REST at en.wikipedia.org/wiki/Representational_State_Trans...

Classes
Resource
SingletonResource
Public Methods
resource Creates named routes for implementing verb-oriented controllers for a singleton resource. A singleton resource is global to its current context. For unnested singleton resources, the resource is global to the current user visiting the application, such as a user’s /account profile. For nested singleton resources, the resource is global to its parent resource, such as a projects resource that has_one :project_manager. The project_manager should be mapped as a singleton resource under projects:
resources Creates named routes for implementing verb-oriented controllers for a collection resource.
Private Methods
action_options_for
add_conditions_for
map_associations
map_collection_actions
map_default_collection_actions
map_default_singleton_actions
map_member_actions
map_new_actions
map_resource
map_singleton_resource
Comments

Have your say
Please use Textile formatting (click here for a cheat sheet). Use <code/> and <pre/> for code samples.
Click here to login with OpenID to to post comments.