rails 4在根站点上路由

时间:2017-03-29 15:28:14

标签: ruby-on-rails ruby-on-rails-4 routing

我在轨道4下,我有一个关于路线的问题。 我想有这样的情况:

/brand-name -> bind to brands#show
/serie-name -> bind to series#show

我在路线上添加了这个

get '/:id', to: 'brands#show', as: :fe_brand
get '/:id', to: 'series#show', as: :fe_serie

但我总是提示品牌#show action,我知道这是正确的,但我想知道是否有解决方法。

谢谢

1 个答案:

答案 0 :(得分:0)

我认为您希望为品牌和系列使用单独的命名空间。尝试:

get '/brands/:id', to: 'brands#show', as: :fe_brand

get '/series/:id', to: 'series#show', as: :fe_serie

路径文件的工作方式是,当新请求进入时,格式会进行模式匹配,并使用它找到的第一个匹配路由。你的两条路线都是一样的,所以你总是被带到品牌秀。要对此进行测试,如果您在路线文件中重新排列这两行,则应该转到series#show

编辑:

由于您将品牌和系列列为复数,他们的网页是不是更像是索引而不是节目?因此,您可以将所需的/brands/series指向各自的索引页,然后使用ID来表达每个品牌或系列。

get '/brands',     to: 'brands#index', as: :fe_brands
get '/brands/:id', to: 'brands#show',  as: :show_fe_brand
get '/series',     to: 'series#index', as: :fe_serie
get '/series/:id', to: 'series#show',  as: :show_fe_serie