2017-10-15 53 views
-1

我有一個使用FriendlyID的應用程序。我目前有兩個型號,貓和服務,我想從這個轉:Rails友好ID路線

/cats/some-category 
/services/a-service 

到:

/some-category 
/a-service 

我現在有路由爲每個這樣的:

resources :cats 
resources :services 

我想在後端保持管理功能相同,並只更改前端的路由。

我已經嘗試使用...

:path => '' 

...但它打亂了在管理後端路由。

想法?

+0

如果你想這樣的路線的URL,這是很難確定要提取哪個對象。 – krishnar

回答

2

最主要的原因,你不能把

/cats/some-category 
/services/a-service 

/some-category 
/a-service 

是由於一些明顯的路由問題。您最大的問題當然是貓和服務都由不同的控制器處理,並且無法在一條路線下混淆兩個控制器。

,如果你想使這個工作,你應該做一個新的控制器首先,說FriendlyController

FriendlyController

,並在您routes.rb做這樣的事情

get '/:id' => 'friendly#index' 

雖然這將工作,但請注意爲什麼這從長遠來看,這是一個壞主意。

  1. 首先,這將一次項目的發展鐵軌不就能夠正確評估,以在某些場合挑選哪條路線以後引起了很多可能的路徑衝突。

  2. 你將如何處理具有相同友好標識的貓和服務?


如果你真的想穿上友好ID而不是控制的重點,你可以縮短像這樣

resources :cats, as: 'c'