如何在资源成员上定义Rails路由并将其显示在路由名称的末尾?

时间:2014-11-25 19:02:38

标签: ruby-on-rails

我的Rails应用程序中有一条路径如下:

resources :products
  get :specs, on: :member
end

这导致路线助手:specs_product_path而不是product_specs_path。如何定义路线以便"规格动作"被添加到辅助方法的末尾而不是开头?

1 个答案:

答案 0 :(得分:1)

您始终可以声明遵循此约定的子资源:

 resources :products do
  resources :specs, only: [ :index ]
 end

但这需要创建另一个控制器,并采用index操作。

您还应该能够使用as:选项覆盖名称:

resources :products do
  get :specs, on: :member, as: :product_specs
end

一般来说,遵守惯例是一个好主意,因为每一个例外都会导致混乱或冲突。