2012-05-10 16 views
0

私は名前空間のコントローラをテストしようとしています。RailsにAPI名前空間コントローラを作成する

namespace :api do 
    get 'organization/:id/questions/:number', controller: 'questions', action: 'index', as: 'organization_questions' 
end 

次のルート生成します:ルートが機能することを

api_organization_questions GET /api/organization/:id/questions/:number(.:format)  {:controller=>"api/questions", :action=>"index"} 

を、私は成功し、次のURLでそれに要求を作成することができるよ:http://localhost:3000/api/organization/1/questions/1234567890

私は、次のルートを設定しています私はユニットテストでそれに get要求をしようとするとき

は、しかし、私は次のエラーを取得する:

No route matches {:controller=>"api/questions", :action=>"/api/organization/1/questions/1234567890"}

私のGETリクエストは次のようになります。

get api_organization_questions_path(@organization.id, '1234567890') 

私が間違ってやっているかわかりません!

+0

レーキルートとは何ですか? –

+0

@juwileyこれは、 'api_organization_questions GET /api/organization/:id/questions/:number(.:format){:controller =>" api/questions "、:action =>" indexの2番目のコードスニペットです。 "}' –

+0

ああ、申し訳ありません。 test.logとdevelopment.logを比較しますか? Paramsは違いますか? –

答えて

2

テストには何を使用していますか? RSpec? getメソッドの最初のパラメータはアクションです。以下のコードは、あなたが望む要求をする必要があります:

describe Api::QuestionsController do 
    it "should do something" do 
    get :index, :id => @organization.id, :number => '1234567890' 
    end 
end 
+0

あなたは正しいです、それはありました!どうもありがとう。 –

関連する問題