簡體   English   中英

Rails路由,添加路徑名還可以保持舊網址正常工作

[英]rails routing, add path name also keep old urls working

在我的路線文件中,當我更改時

resources :foobar

resources :foobars, path: "foo-bars"

該網址成為了example.com/foo-barsexample.com/foo-bars/1等,這是好的。

但我如何能也保持舊網址, example.com/foobarsexample.com/foobar/3也工作?

我知道,我可以對其進行硬編碼,

get "foobars", to: 'foobar#index'
get "foobar/:id", to: 'foobar#show'
...   

但是有沒有一種干凈的方法來實現呢?

定義兩者

resources :foobars, path: "foo-bars"
resources :foobars, path: "foobars"

編輯:

對於自定義操作,而不是像這樣對每個路徑聲明兩次,

resources :foobars, path: "foo-bars"
  collection do
    get 'bulk_new'
    patch 'bulk_create'
    get 'bulk_edit'
    patch 'bulk_update'
  end
end

resources :foobars, path: "foobars"
  collection do
    get 'bulk_new'
    patch 'bulk_create'
    get 'bulk_edit'
    patch 'bulk_update'
  end
end

創建公共塊並將其傳遞給兩個資源方法調用。

common_block  = lambda do
  collection do
    get 'bulk_new'
    patch 'bulk_create'
    get 'bulk_edit'
    patch 'bulk_update'
  end
end

resources :foobars, path: "foo-bars", &common_block
resources :foobars, path: "foobars", &common_block

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM