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
notget:controller
norget: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还是很陌生。在控制器测试中,您正在测试控制器。这将是测试路线,可以找到