ルーティングって、要するにURLからどのアクションを実行するかを決めることね!
resources :members
members GET /members(.:format) {:action=>"index", :controller=>"members"} POST /members(.:format) {:action=>"create", :controller=>"members"} new_member GET /members/new(.:format) {:action=>"new", :controller=>"members"} edit_member GET /members/:id/edit(.:format) {:action=>"edit", :controller=>"members"} member GET /members/:id(.:format) {:action=>"show", :controller=>"members"} PUT /members/:id(.:format) {:action=>"update", :controller=>"members"} DELETE /members/:id(.:format) {:action=>"destroy", :controller=>"members"}
resource :config
config POST /config(.:format) {:action=>"create", :controller=>"configs"} new_config GET /config/new(.:format) {:action=>"new", :controller=>"configs"} edit_config GET /config/edit(.:format) {:action=>"edit", :controller=>"configs"} GET /config(.:format) {:action=>"show", :controller=>"configs"} PUT /config(.:format) {:action=>"update", :controller=>"configs"} DELETE /config(.:format) {:action=>"destroy", :controller=>"configs"}
resources :books, :constraints => {:id => /[0-9]{1,2}/}
constraints(:id => /[0-9]{1,2}/) do resources :books resources :reviews end
class TimeConstraint def matches?(request) corrent = Time.now corrent.year == 2012 && corrent.month == 2 end end
require 'TimeConstraint' …中略… resources :users, :constraints => TimeConstraint.new
resources :users, :controller => 'members' # これでMembersControllerにマッピング resources :reviews, :as => 'comments' # これでcomments_pathとかのヘルパーを使える
rails g controller Admin::Books
namespace 'admin' do resources :books end
scope :module => 'admin' do resources :books end
admin_books GET /admin/books(.:format) {:action=>"index", :controller=>"admin/books"} books GET /books(.:format) {:action=>"index", :controller=>"admin/books"}
resources :reviews do collection do get 'unapproval' # GETに[reviews/unapproval]を追加 end member do get 'draft' # GETに[reviews/draft]を追加 end end
unapproval_reviews GET /reviews/unapproval(.:format) {:action=>"unapproval", :controller=>"reviews"} draft_review GET /reviews/:id/draft(.:format) {:action=>"draft", :controller=>"reviews"}
resources :reviews do get 'unapproval', :on => :collection get 'draft', :on => :member end
resources :users, :except => ['show','destroy']
resources :users, :path_names => { :new => 'insert', :edit => 'revise'}
new_user GET /users/insert(.:format) {:action=>"new", :controller=>"users"} edit_user GET /users/:id/revise(.:format) {:action=>"edit", :controller=>"users"}
resources :books do resources :reviews end
book_reviews GET /books/:book_id/reviews(.:format) {:action=>"index", :controller=>"reviews"} POST /books/:book_id/reviews(.:format) {:action=>"create", :controller=>"reviews"} new_book_review GET /books/:book_id/reviews/new(.:format) {:action=>"new", :controller=>"reviews"} edit_book_review GET /books/:book_id/reviews/:id/edit(.:format) {:action=>"edit", :controller=>"reviews"} book_review GET /books/:book_id/reviews/:id(.:format) {:action=>"show", :controller=>"reviews"} PUT /books/:book_id/reviews/:id(.:format) {:action=>"update", :controller=>"reviews"} DELETE /books/:book_id/reviews/:id(.:format) {:action=>"destroy", :controller=>"reviews"}
match '/blogs/:user_id' => 'blogs#index'
/blogs/:user_id(.:format) {:controller=>"blogs", :action=>"index"}
match ':controller(/:action(/:id(.:format)))'
root :to => 'books#index'