2012-05-10 50 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"} 

這條路線的作品,我能成功地提出請求將其與以下網址: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 「}' –

+0

啊,對不起。比較test.log和development.log?參數不同? –

回答

2

你在測試什麼? RSpec的? get方法的第一個參數是動作。下面的代碼應該提出你想要的請求:

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

你是對的,先生,確實!非常感謝。 –

相關問題