在Rails路由中以相反的顺序指定slug

时间:2013-07-23 18:54:59

标签: ruby-on-rails routing

我们的应用程序上有一些命名空间控制器。

这很容易做到:

/store/pants
/store/shirts/2

在多租户环境中,我们希望这样做:

/:tenant_slug/hats
/:tenant_slug/hats/3
/jims-discount-apparel/gloves

让这些路由映射到命名空间控制器:

Store::HatsController
Store::GlovesController

我们将使用/store/:tenant_slug/hats

我希望任何以:tenant_slug开头的路由映射到Store命名空间中的相应控制器。

我们在Store下有几个控制器,我们希望避免在routes.rb中列出所有控制器(帽子,手套,衬衫,裤子......等等)。 < / p>

我试图使用match,但我无法正确使用它。

1 个答案:

答案 0 :(得分:1)

这不起作用吗?

get '/:tenant_slug/hats', to: 'store/hats#index', as: 'hats'

应该生成以下路由,并且params [:tenant_slug]将包含URI的那一部分:

hats GET /:tenant_slug/hats(.:format) store/hats#index