Rails 5 使用 :id 向 REST 路由添加自定义操作

Rails 5 add custom action to REST route with :id

在我的 Rails 5 应用程序中,我有一个用于 REST 控制器的路由:

resources :payments

我想为资源添加一个新的动作支付,所以我输入:

resources :payments do
   get 'pay'
end

我原来的路线看起来像这样:

/payments/:id/edit

自定义路由使用 :payment_id 而不是 :id

/payments/:payment_id/pay

如何将路线更改为:

payments/:id/pay

?

我需要这个,因为 CanCanCan 会自动在控制器中设置付款,但会查找 :id 而不是 :payment_id

resources :payments do
  get 'pay', on: :member
end

如所述here