2016-05-03 22 views
0

私は2つのバージョンのAPI(1 & 2)を持っています.APIバージョン2のコントローラは、APIバージョン1のコントローラから継承します。私は、バージョン2でスペックを実行すると、しかし、それは継承された(作成)アクションに一致するルートがありません

ActionController::UrlGenerationError: No route matches {:action=>"create", :controller=>"api/mobile/v2/samples"}

#version 1 
class Api::Mobile::V1::SamplesController < ApplicationController 
    def create 
    #dummy 
    end 
end 

#version 2 
require "meta_data" 
class Api::Mobile::V2::SamplesController < Api::Mobile::V1::SamplesController 
    include MetaData 
end 


#spec for version 1 
require 'rails_helper' 
RSpec.describe Api::Mobile::V1::SamplesController, type: :controller do 
    describe "POST #create" do 
    it "performs a post" do 
     post :create 
    end 
    end 
end 

#spec for version 2 
require 'rails_helper' 
RSpec.describe Api::Mobile::V2::SamplesController, type: :controller do 
    describe "POST #create" do 
    it "performs a post" do 
     post :create 
    end 
    end 
end 
+0

あなたのルートには次のようなものがありますか? 'namespace:api do namespace:mobile do namespace:v2 resources:samples end end end' –

+0

はい、アプリは正常に動作しています。私が立ち上げて走らせることができないテストだけです。 – simon

答えて

0

私に語ったRSpecのはSamplesController(複数)を探しています。単体でresourceを使用してルートを指定していることを確認してください。それ以外の場合は、sampleの複数形をsampleと指定してください。

私はちょうどフローとユーザーの複数のフォームに行きます。しかし、明らかに、実際の頭痛のパブリックAPIを使用しています。

+0

Sry、これはサンプルコードのコピー&ペーストミスです。私はコードを編集しました。 – simon

+0

'routes.rb'でv2の新しいルートを定義しましたか? – Uzbekjon

+0

はい、アプリは正常に動作しています。私が立ち上げて走らせることができないテストだけです。 – simon

関連する問題