Rails Routes中new、collection、member的區(qū)別淺析
RESTful風(fēng)格的路由動詞默認有7個(分別為:index, show, create, new, edit, update, destroy)。有時我們需要自定義路由,這時就要用到:on參數(shù)。:on參數(shù)有三種取值,分別為collection,member,new。
如果想添加一個member方式的路由,可以這樣:
resources :photos do
member do
get 'preview'
end
end
將會添加一個路由:GET請求/photos/1/preview路由到PhotosController的preview action,同時也會新建preview_photo_url 和 preview_photo_path這兩個helpers。
上面的member block中可以添加很多條記錄。如果只有一條,一般會這樣寫:
resources :photos do
get 'preview',n => :member
end
下面總結(jié)一下member,new,collection的區(qū)別:
:member 是對單個實體進行操作,創(chuàng)建路由格式是: /:controller/:id/:your_method
:collection 是對實體集合進行操作,創(chuàng)建路由格式是: /:controller/:your_method
:new 是新建一個實體,創(chuàng)建路由格式是: /:controller/:your_method/new
舉例如下:
map.resources :users, :collection => { :rss => :get }
map.resources :users, :member => { :profile => :get }
map.resources :users, :new => { :draft => :get }
第一行創(chuàng)建的路由是:/users/rss
第二行創(chuàng)建的路由是:/users/1/profile
“1”就是user_id,我們需要知道用戶ID才能得到用戶的profile.
第三行創(chuàng)建的路由是:/users/new/draft
相關(guān)文章
關(guān)于Ruby on Rails視圖編寫的一些建議
這篇文章主要介紹了關(guān)于Ruby on Rails視圖編寫的一些建議,有助于團隊協(xié)作時對代碼的調(diào)試工作,需要的朋友可以參考下2015-08-08
關(guān)于Ruby on Rails路由配置的一些建議
這篇文章主要介紹了關(guān)于Ruby on Rails路由配置的一些建議,作者提出了相關(guān)代碼編寫時一些值得注意的地方,需要的朋友可以參考下2015-08-08
Rails應(yīng)用程序中同時修改操作沖突問題的解決方案
這篇文章主要介紹了Rails應(yīng)用程序中同時修改操作沖突問題的解決方案,本文講解使用Rails 的 樂觀鎖解決這個問題并給出了代碼救命,需要的朋友可以參考下2015-03-03
解析proxy代理模式在Ruby設(shè)計模式開發(fā)中的運用
這篇文章主要介紹了proxy代理模式在Ruby設(shè)計模式開發(fā)中的運用,通過代理模式以客戶透明的形式可以動態(tài)地為目標(biāo)對象加以行為控制,需要的朋友可以參考下2016-04-04
Monkey Patch猴子補丁編程方式及其在Ruby中的運用
Monkey Patch是指在程序運行時追加代碼段,一般被認為是解釋型語言的特長,下面我們就來看一下Monkey Patch猴子補丁編程方式及其在Ruby中的運用2016-05-05
win7安裝ruby on rails開發(fā)環(huán)境
看到很多文章都說ruby環(huán)境在windows上是非常難搭建,會出現(xiàn)各種各樣的怪問題,所以都推薦到linux和mac上安裝開發(fā)。但是我按照教程搭了下,問題也不算太多??傔^大概花費了2個半小時左右就完成了。下面就把安裝的步驟及具體的版本記錄了一下供大家參考。2014-07-07

