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

alm*_*lmo 4 ruby-on-rails cancan ruby-on-rails-5

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

resources :payments
Run Code Online (Sandbox Code Playgroud)

我想向资源添加新的操作报酬,所以我输入:

resources :payments do
   get 'pay'
end
Run Code Online (Sandbox Code Playgroud)

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

/payments/:id/edit
Run Code Online (Sandbox Code Playgroud)

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

/payments/:payment_id/pay
Run Code Online (Sandbox Code Playgroud)

我怎样才能将路线更改为:

payments/:id/pay
Run Code Online (Sandbox Code Playgroud)

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

Mar*_*iej 7

resources :payments do
  get 'pay', on: :member
end
Run Code Online (Sandbox Code Playgroud)

如此处所述。