Ruby On Rails 的 RESTful routing

Ruby On Rails 是我最近開始學習的一個網站快速開發框架

一般我們開發網站最常使用的功能不外乎就是CRUD, C 就是 Create(建立), R就是 Read(讀取), U就是Update(更新), D就是Delete 刪除, 這四種操作

而在Rails裡面,我們要進行這幾個基本操作,我們要進行所謂得路由,就是透過網址的方式,來告訴Rails我們目前要做的是那一種操作

這樣共有以下幾個路由:

(因為Rails採用MVC架構, 須在網址上告知Rails我們現在要進行的操作要由那一個Conroller處理,假設我們是由posts這個Controller處理)

網址 Rails helper 操作 http method 對像
/posts/index posts_path 讀取資料的集合 GET Collection
/posts/id post_path(id) 讀取指定id的資料 GET Member
/posts/new new_post_path 前往新增資料頁面 GET Member
/posts/id/edit edit_post_path(id) 前往指定id的資料編輯頁面 GET Member
/posts post_path 新增資料 POST Member
/posts/id post_path(id) 更新指定id資料 PUT Member
/posts/id post_path(id) 刪除指定id資料 DELETE Member

由以上的表可以看出,要完整地完成CRUD總共要進行7種操作,由於Rails的路由要在路由表routes.rb進行設置

所以要在routes.rb打上以下幾個路行,Rails才可以認得這幾個網址所對應的Controller上的路由

get ‘/posts’ => “posts#index”
post ‘/posts’ => “posts#create”
get ‘/posts/:id’ => “posts#show”
put ‘/posts/:id’ => “posts#update”
delete ‘/posts/:id’ => “posts#destroy”
get ‘/posts/new’ => “posts#new”
get ‘/posts/:id/edit’ => “posts#edit”

但因為這幾個我們已經使用為RESTful的路由格式

所以上面那幾行可以不用打,直接在routes.rb打上 resources :posts, Rails就會自己產生以上幾行對應

到Console打上rake routes 會出現下圖

螢幕快照 2013 08 19 上午4.38.58 Ruby On Rails 的 RESTful routing