我在轨道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,我知道这是正确的,但我想知道是否有解决方法。
谢谢
答案 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