Ruby on rails ActionController::RoutingError:没有与之匹配的路由{:controller=>;>;";供应商,:action=>;>;";供应商}?

Ruby on rails ActionController::RoutingError:没有与之匹配的路由{:controller=>;>;";供应商,:action=>;>;";供应商}?,ruby-on-rails,Ruby On Rails,在我的测试中,我试着打电话给 get :vendors 但我得到的错误是 ActionController::RoutingError: No route matches {:controller=>"vendors", :action=>"vendors"} 我在routes.rb中有以下内容 match '/vendors', :to => 'vendors#index' 所以我不明白为什么它要寻找(不存在的)“供应商”操作,而不是像匹配一样使用“索引”。谁

在我的测试中,我试着打电话给

get :vendors
但我得到的错误是

ActionController::RoutingError: No route matches {:controller=>"vendors", 
    :action=>"vendors"}
我在routes.rb中有以下内容

match '/vendors', :to => 'vendors#index'
所以我不明白为什么它要寻找(不存在的)“供应商”操作,而不是像匹配一样使用“索引”。谁能给我解释一下吗?

你应该这么做

get :index
是rspec中控制器测试的一个示例

get :index

rspec中的控制器测试示例是因为您告诉它的吗

测试已经是上下文化的,大概是使用
descripe VendorsController
,所以说
get:vendors
告诉它获取vendors\vendors操作。它不是说“获取/供应商URL”,而是直接指向控制器


通常,您运行
get:action
不是
get:controller
也不是
get:matched\u route\u name

,因为您告诉它

测试已经是上下文化的,大概是使用
descripe VendorsController
,所以说
get:vendors
告诉它获取vendors\vendors操作。它不是说“获取/供应商URL”,而是直接指向控制器


通常,您运行
get:action
not
get:controller
nor
get:matched_route_name

,因此:此特定测试中的索引将获取供应商索引,对吗?在另一个测试中,比如客户::index将得到客户#index?只要它在控制器的descripe块内。好的。我的印象是,get正在寻找同名的路线:ex,get:about looked for/about。我对RubyonRails还是很陌生。在控制器测试中,您正在测试控制器。这将是对路由的测试,可以这样找到:在这个特定的测试中,索引将得到供应商的索引,对吗?在另一个测试中,比如客户::index将得到客户#index?只要它在控制器的descripe块内。好的。我的印象是,get正在寻找同名的路线:ex,get:about looked for/about。我对RubyonRails还是很陌生。在控制器测试中,您正在测试控制器。这将是测试路线,可以找到