Ruby on rails RubyonRails:rosource资源\u名称dosent生成索引路由/操作

Ruby on rails RubyonRails:rosource资源\u名称dosent生成索引路由/操作,ruby-on-rails,ruby,Ruby On Rails,Ruby,我目前正试图使用资源,但有一个问题,我有,当我做以下 resource :orders route/orders dosent路由到OrdersControllerindex它指向控制器的show操作,如何解决此问题 由于这个问题,我不得不这样做,我觉得这是一种黑客和不好 获取“/orders”到:“ordersindex” 获取“/orders/:id”到:“ordersshow” 这是我的routes.rb文件 Rails.application.routes.draw do 获取“/ca

我目前正试图使用资源,但有一个问题,我有,当我做以下

resource :orders
route/orders dosent路由到OrdersControllerindex它指向控制器的show操作,如何解决此问题

由于这个问题,我不得不这样做,我觉得这是一种黑客和不好

获取“/orders”到:“ordersindex” 获取“/orders/:id”到:“ordersshow” 这是我的routes.rb文件

Rails.application.routes.draw do 获取“/carts”到“cartsindex” 获取“/payments”至:“paymentsindex” 将“/payments”过账至:“paymentsadd_credits” 获取“/orders”到:“ordersindex” 获取“/orders/:id”到:“ordersshow” 资源:用户可以 资源:订单,仅:%i[显示创建索引] 资源:购物车,仅:%i[创建销毁],路径:“购物车”,作为:“购物车” 终止 资源:会话,仅:[]执行 发布“登录”,操作::创建 发布“注销”,操作::销毁 获取“登录”,操作::新建 终止 资源:产品 有关此文件中可用DSL的详细信息,请参阅https://guides.rubyonrails.org/routing.html 终止
感谢您的回答:

将订单资源移到用户路线之外

仅供参考,您可以拥有用户之外的全部资源,然后是用户内部的受限路由,但我不确定这里的目标是什么,所以这取决于您的决定

Rails.application.routes.draw do
  get '/carts', to: 'carts#index'

  get '/payments', to: 'payments#index'
  post '/payments', to: 'payments#add_credits'

  resources :orders

  resources :users do
    resource :orders, only: %i[show create index] <-- not sure if this remains here
    resource :carts, only: %i[create destroy], path: 'cart', as: 'cart'
  end
...

将订单的资源移动到用户路由之外

仅供参考,您可以拥有用户之外的全部资源,然后是用户内部的受限路由,但我不确定这里的目标是什么,所以这取决于您的决定

Rails.application.routes.draw do
  get '/carts', to: 'carts#index'

  get '/payments', to: 'payments#index'
  post '/payments', to: 'payments#add_credits'

  resources :orders

  resources :users do
    resource :orders, only: %i[show create index] <-- not sure if this remains here
    resource :carts, only: %i[create destroy], path: 'cart', as: 'cart'
  end
...
不要使用

resource :orders
使用

只有当项目订单是应用程序中的单个实体时,才能使用资源。。。也就是说你用复数来指代那一项。

不要用复数

resource :orders
使用


只有当项目订单是应用程序中的单个实体时,才能使用资源。。。也就是说,你用复数来表示这一项。

请发布你的routes.rb文件,整个文件。@RockwellRice我补充道,@RockwellRice my bad抱歉,它已经生成了,但我没有看到。好吧,你把订单资源放在用户内部,所以如果你只想得到一个/orders URL,那就不起作用了。很难说你想在这里做什么。您是否只需要基本订单URL而不需要用户内部的URL?如果是这样,请在用户之外添加资源,仅供参考,您可以在用户之外拥有ful资源,然后在用户内部拥有那些受限路由,但我不确定这里的目标是什么,因此由您决定。@RockwellRice您可以考虑将此作为答案发布,因此我可以接受它。请发布您的routes.rb文件,整个文件。@RockwellRice我添加了,@RockwellRice my bad抱歉,它已经生成了这个文件,但我没有看到。好吧,你把订单资源放在用户内部,所以如果你只想得到一个/orders URL,那么这个URL就行不通了。很难说你想在这里做什么。您是否只需要基本订单URL而不需要用户内部的URL?如果是这样,请在用户之外添加资源,仅供参考,您可以在用户之外拥有ful资源,然后在用户内部拥有那些受限路由,但我不确定这里的目标是什么,因此由您决定。@RockwellRice您可以考虑将此作为答案发布,这样我就可以接受了