You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Rails路由问题:嵌套资源无法调用#create动作

嘿,我帮你把这些路由配置和结果整理得明明白白啦:

路由配置(config/routes.rb)

这是你写的嵌套路由,把支付源资源嵌套在用户资源下,还指定了仅开放的动作和对应的控制器:

resources :users do
  resources :payment_sources, only: [:index, :new, :create, :destroy], controller: 'users/payment_sources'
end
生成的路由信息

你执行了rake routes | grep payment_source命令过滤相关路由,得到的结果如下(看起来结果有部分截断):

user_payment_sources GET /users/:user_id/payment_sources(.:format) users/payment_sources#index
POST /users/:user_id/payment_sources(.:format) users/payment_sources#create
new_user_payment_source GET /users/:user_id/payment_sources/new(.:format) users/payment...

我再给你拆解下这些路由的实际作用:

  • user_payment_sources GET:发送这个GET请求会触发Users::PaymentSourcesController的index方法,用来列出某个用户的所有支付源。
  • POST /users/:user_id/payment_sources:这个POST请求对应控制器的create方法,用来提交并创建新的支付源。
  • new_user_payment_source GET:这个GET请求对应控制器的new方法,用来展示创建支付源的表单页面。
  • 另外你还配置了destroy动作,对应的完整路由应该是DELETE /users/:user_id/payment_sources/:id(.:format),只是没出现在你提供的grep结果里,它会触发控制器的destroy方法来删除指定的支付源。

内容的提问来源于stack exchange,提问作者Miguel Torres

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 06:45:16