国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 巴塘县| 收藏| 罗甸县| 南涧| 咸阳市| 开阳县| 赤水市| 托克逊县| 扶沟县| 防城港市| 商丘市| 夏河县| 嘉鱼县| 衡南县| 九龙县| 保靖县| 兴安县| 曲阜市| 咸丰县| 锡林郭勒盟| 汉川市| 仙桃市| 丹寨县| 洛浦县| 沈丘县| 县级市| 平乡县| 普陀区| 长春市| 临武县| 澄城县| 张掖市| 南部县| 合肥市| 竹北市| 台中市| 方山县| 铁岭市| 新野县| 巴林右旗| 湖北省|