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
將會添加一個(gè)路由:GET請求/photos/1/preview路由到PhotosController的preview action,同時(shí)也會新建preview_photo_url 和 preview_photo_path這兩個(gè)helpers。
上面的member block中可以添加很多條記錄。如果只有一條,一般會這樣寫:
resources :photos do
get 'preview',n => :member
end
下面總結(jié)一下member,new,collection的區(qū)別:
:member 是對單個(gè)實(shí)體進(jìn)行操作,創(chuàng)建路由格式是: /:controller/:id/:your_method
:collection 是對實(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)文章
CentOS中配置Ruby on Rails環(huán)境
經(jīng)過一個(gè)上午的折騰,終于把ROR環(huán)境在CentOS中搞定,繞了很多彎路,把文章寫下來總結(jié)一下2014-03-03升級到mac 10.10之后使用pod出現(xiàn)問題的解決方法
這篇文章主要介紹了升級到mac 10.10之后使用pod出現(xiàn)問題的解決方法,需要的朋友可以參考下2014-07-07

比較不錯(cuò)的關(guān)于ruby的電子書下載地址集合