【问题标题】:rails 4 routing on root site根站点上的rails 4路由
【发布时间】:2017-03-29 15:28:14
【问题描述】:

我在 Rails 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

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

谢谢

【问题讨论】:

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


    【解决方案1】:

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

    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
    

    【讨论】:

      猜你喜欢
      • 2015-08-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-12-04
      • 1970-01-01
      • 1970-01-01
      • 2019-02-05
      相关资源
      最近更新 更多