Rspec 无法识别我的控制器路由。我正在使用 Versionist gem 来对我的 API 进行版本控制,并且我正在使用路径版本(以便/v1/
对我的 API 进行版本控制,如下所示。)。
constraints :subdomain => "api" do
api_version(:module => "V1", :path => {:value => "v1"}, :defaults => {:format => :json}, :default => true) do
match '/orders' => 'orders#index', :via => :get
rake routes 中的路由如下图所示:
GET /v1/orders(.:format) V1/orders#index {:subdomain=>"api", :format=>:json}
我的控制器位于app/controller/v1/orders_controller.rb
.
对于 rspec 测试,我有一个orders_controller_spec.rb
,我有:
require 'spec_helper'
module V1
describe OrdersController do
describe "GET #index" do
it "throws an error on incorrect params" do
get :index
end
end
end
end
我得到的错误是:
1) V1::OrdersApiController GET #index throws an error on incorrect param
Failure/Error: get :index
ActionController::RoutingError:
No route matches {:controller=>"v1/orders"}
这里有什么问题?怎么没有路线匹配v1/orders
?在rake routes
中,我看到了如上所示的路线:GET /v1/orders(.:format) V1/orders#index {:subdomain=>"api", :format=>:json}
。它说GET /v1/orders
。这里的问题在哪里?