Ruby on rails 设计、Rails API、路由问题

Ruby on rails 设计、Rails API、路由问题,ruby-on-rails,api,devise,Ruby On Rails,Api,Devise,我在rails api应用程序中设置了以下路由: constraints subdomain: 'api', path: '/' do namespace 'api', path: '/' do scope module: 'v1' , constraints: ApiConstraints.new(version: 1, default: true) do devise_scope :user do post 'sign_in'

我在rails api应用程序中设置了以下路由:

  constraints subdomain: 'api', path: '/' do
    namespace 'api', path: '/' do
      scope module: 'v1' , constraints: ApiConstraints.new(version: 1, default: true) do
        devise_scope :user do
          post   'sign_in'  => 'sessions#create'
          delete 'sign_out' => 'sessions#destroy'
        end
        resources :question   
      end
    end
  end


  # rake routes
  Prefix Verb          URI Pattern            Controller#Action
  api_sign_in POST     /sign_in(.:format)     api/v1/sessions#create {:subdomain=>"api"}
  api_sign_out DELETE  /sign_out(.:format)    api/v1/sessions#destroy {:subdomain=>"api"}
当我开始执行此测试时:

require 'rails_helper'

RSpec.describe Api::V1::SessionsController, :type => :controller do


  describe '#create' do
    it 'creates a session' do
      @request.env["devise.mapping"] = Devise.mappings[:user]
      user = User.create(email: 'rob@edukate.com', password: 'password')
      post :create, action: :create, user_login: { password: user.password, email: user.email}

      expect(response).to be_success
    end
  end

end
我得到这个错误:

F

Failures:

  1) Api::V1::SessionsController#create creates a session
     Failure/Error: post :create, action: :create, user_login: { password: user.password, email: user.email}
     AbstractController::ActionNotFound:
       Could not find devise mapping for path "/sign_in?user_login%5Bemail%5D=rob%40edukate.com&user_login%5Bpassword%5D=password".
我尝试过许多不同的路线,但我无法通过这个简单的测试。如果我不能像这样完成它,我就自己动手;但Deave似乎在用抽象控制器做一些奇怪的事情。提前谢谢