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

