2017-10-15 52 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'