【问题标题】:Override Rails routing覆盖 Rails 路由
【发布时间】:2014-05-28 18:19:41
【问题描述】:

在我的应用中,我有以下路线:

  namespace :partners do
    resources :cars
  end

我的汽车索引是以下路线:

'localhost:3000/partners/cars/'

但我想要这样的路径:

'localhost:3000/partners/all_cars/'

我该怎么做?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 ruby-on-rails-3.2 routes


    【解决方案1】:

    试试:

    namespace :partners do
      resources :cars, path: 'all_cars', only: [ :index ]
      resources :cars, except: [ :index ]
    end
    

    第一行将创建/partners/all_cars/ 映射到index 操作。另请注意,我们只为指定all_cars 路径的index 操作生成路由。

    下一行,由于我们已经有了index 的路由,我想我们将跳过定义index,而让其他默认值。

    【讨论】:

    • 使用此解决方案可以轻松了解您的路线中发生的情况。
    【解决方案2】:
    namespace :partners do
        resources :cars, except: [:index] do
          collection do
            get :all_cars
          end
      end
    end
    

    这样您将删除索引并添加 all_cars

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-04-02
      • 1970-01-01
      • 2023-03-26
      • 2013-02-27
      • 1970-01-01
      • 1970-01-01
      • 2016-07-12
      • 2018-04-22
      相关资源
      最近更新 更多