| Method | URL | Action | Helper |
|---|---|---|---|
| GET | /articles | index | articles_path |
| GET | /articles/1 | show | article_path(:id => 1) |
| GET | /articles/new | new | new_article_path |
| GET | /articles/1/edit | edit | edit_article_path(:id => 1) |
| POST | /articles | create | articles_path |
| PUT | /articles | update | article_path(:id => 1) |
| DELETE | /articles/1 | destroy | article_path(:id => 1) |
# Without REST
link_to "Show", :controller => 'articles', :action => 'show', :id => @article
link_to "Destroy", :controller => 'articles', :action => 'destroy', :id => @article
form_for(@article, :url => { :action => "create" })
# With REST
link_to "Show", @article
link_to "Destroy", @article, :method => :delete
form_for(@article)
# Adding a new recent action for a collection
# GET /articles/recent (recent_articles_path)
map.resources :articles, :collection => { :recent => :get }
# Adding an action for an individual resource
# PUT /articles/1/release (release_article_path(:id => 1))
map.resources :articles, :member => { :release => :put }
map.resources :article, :has_one => :author, :has_many => [:comments, :attachments] # Same as: map.resources :articles do |article| article.resource :author article.resources :comments article.resources :attachments end
script/generate scaffold article title:string body:text publish_time:datetime
# You can any HTTP client to consume a REST service, such as curl or wget on the # command line, or Net::HTTP in your Ruby scripts. # Using the ActiveResource client: class Post < ActiveResource::Base self.site = "http://localhost:3000" end post = Post.find(1) post.inspect post.body = “new body” post.save
class PostsController < ApplicationController
before_filter :authenticate
private
def authenticate
authenticate_or_request_with_http_basic do |user_name, password|
user_name == "peter" && password == "open sesame"
end
end
end