为多个方法保持相似的URL Ruby

时间:2018-10-17 00:19:40

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

我有3个控制器,显示方法分别为

class CarController < ApplicationController

  def show
  end
end

class MotorcycleController < ApplicationController

  def show
  end
end

class TravelController < ApplicationController

  def show
  end
end

在我的路线中,我希望所有树的show方法遵循相同的url结构/:company_id/:id

因此,举一个例子,我的主页URL为https://localhost:3000,公司ID为1,ID为2,如果我转到汽车控制器的show方法,则我的URL应为成为http://localhost:3000/1/2

此刻,我在自己的路线上做到了

get '/:company_id/:id' => 'travel_controller#show', as: 'travel_insurance_product'
    get '/:company_id/:id' => 'car_controller#show', as: 'car_insurance_product'
    get '/:company_id/:id' => 'motorcycle_controller#show', as: 'motorcycle_insurance_product'

但是当我触发车展方法时,它将转到旅行控制器方法

这有可能用红宝石完成吗?

1 个答案:

答案 0 :(得分:0)

否,不可能。路由器应该如何知道id是用于CarMotorcycle还是Travel的?

顺便说一句,约定是控制器采用复数形式(例如MotorcyclesController)。

顺便说一句,路由也是一种Rails现象,而不是Ruby现象。