ActionController :: RoutingError:没有路由匹配{:controller =>"供应商",:action =>"供应商"}?

时间:2014-07-21 21:51:30

标签: ruby-on-rails

在我的测试中,我试图打电话

get :vendors

但我得到的错误是

ActionController::RoutingError: No route matches {:controller=>"vendors", 
    :action=>"vendors"}

我在routes.rb

中有以下内容
match '/vendors', :to => 'vendors#index'

所以我不明白它为什么要寻找(不存在的)"供应商"行动而不是使用"索引"喜欢它的匹配。任何人都可以向我解释这个吗?

2 个答案:

答案 0 :(得分:3)

因为你说过了吗?

测试已经被上下文化,可能是describe VendorsController,所以说get :vendors告诉它让供应商#供应商采取行动。它不是说“获取/供应商URL”,而是直接进入控制器。

一般情况下,您运行get :action而非get :controllerget :matched_route_name

答案 1 :(得分:2)

你应该做的

get :index

Here是rspec中控制器测试的一个例子