没有路线匹配,尽管耙路中有一条 [英] No route matches although there is one in rake routes

查看:56
本文介绍了没有路线匹配,尽管耙路中有一条的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我很奇怪 ActionController :: RoutingError:没有路线匹配。可以生成该路线:

I get strange ActionController::RoutingError: No route matches. The route can be generated:

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

它在耙路

$ 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 类?没有它,您的路线将无法被识别。

Do you have ItemsController class defined? Without it your route won't be recognized. Perhaps you misspelled it.

irb(main):001:0> r = Rails.application.routes
=> #<ActionDispatch::Routing::RouteSet:0x1cbba00>
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"}

这篇关于没有路线匹配,尽管耙路中有一条的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆