国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Ruby > 正文

Rails Routes中new、collection、member的區別淺析

2020-10-29 19:43:12
字體:
來源:轉載
供稿:網友

RESTful風格的路由動詞默認有7個(分別為:index, show, create, new, edit, update, destroy)。有時我們需要自定義路由,這時就要用到:on參數。:on參數有三種取值,分別為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

下面總結一下member,new,collection的區別:

:member 是對單個實體進行操作,創建路由格式是: /:controller/:id/:your_method
:collection 是對實體集合進行操作,創建路由格式是: /:controller/:your_method
:new 是新建一個實體,創建路由格式是: /:controller/:your_method/new

舉例如下:

復制代碼 代碼如下:

map.resources :users, :collection => { :rss => :get }
map.resources :users, :member => { :profile => :get }
map.resources :users, :new => { :draft => :get }

第一行創建的路由是:/users/rss
第二行創建的路由是:/users/1/profile
“1”就是user_id,我們需要知道用戶ID才能得到用戶的profile.
第三行創建的路由是:/users/new/draft

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 仪征市| 米脂县| 海南省| 临猗县| 醴陵市| 衡南县| 建平县| 家居| 山东省| 咸阳市| 嘉义市| 盐山县| 涞水县| 武宁县| 临安市| 东辽县| 读书| 清远市| 平湖市| 亚东县| 巴东县| 明水县| 陇西县| 大冶市| 车险| 同德县| 犍为县| 开原市| 嘉鱼县| 罗田县| 安溪县| 福建省| 固原市| 隆林| 鄂温| 桑植县| 承德市| 蓬莱市| 家居| 富蕴县| 嵊州市|