首页 > 解决方案 > Rails 5 使用 :id 向 REST 路由添加自定义操作

问题描述

在我的 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

标签: ruby-on-railsruby-on-rails-5cancan

解决方案


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

如此处所述。


推荐阅读