虽然在佣金路线中有一条路线,但没有路线匹配

我得到奇怪的ActionController::RoutingError: No route matches 。 可以生成路线:

 > r = Rails.application.routes > r.generate controller: :items, action: :index, user_id:1 => ["/users/1/items", {}] 

它是在rake routes

 $ rake routes user_items GET /users/:user_id/items(.:format) items#index POST /users/:user_id/items(.:format) items#create new_user_item GET /users/:user_id/items/new(.:format) items#new edit_user_item GET /users/:user_id/items/:id/edit(.:format) items#edit user_item GET /users/:user_id/items/:id(.:format) items#show PUT /users/:user_id/items/:id(.:format) items#update DELETE /users/:user_id/items/:id(.:format) items#destroy (...) 

但我不承认:

 r.recognize_path "/users/1/items" ActionController::RoutingError: No route matches "/users/1/items" 

我的routes.rb

 Sumo2::Application.routes.draw do resources :users do resources :items end (...) end 

有任何想法吗?

你有ItemsController类定义了吗? 没有它,您的路线将无法识别。 也许你拼错了它。

 irb(main):001:0> r = Rails.application.routes => # irb(main):002:0> r.recognize_path "/users/1/items" ActionController::RoutingError: No route matches "/users/1/items" ... errors ... irb(main):003:0> class ItemsController; end # <----------< => nil irb(main):004:0> r.recognize_path "/users/1/items" => {:action=>"index", :controller=>"items", :user_id=>"1"}