0

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。这里的问题在哪里?

4

0 回答 0