0

名前空間付きコントローラーをテストしようとしていますが、運がよくありません。次のルート設定があります。

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 / Organisation / 1 / questions / 1234567890

getただし、単体テストでリクエストしようとすると、次のエラーが発生します。

一致するルートがありません{:controller => "api / question"、:action => "/ api / organization / 1 / question / 1234567890"}

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

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

何が間違っているのかわからない!?

4

1 に答える 1

2

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

describe Api::QuestionsController do
  it "should do something" do
    get :index, :id => @organization.id, :number => '1234567890'
  end
end
于 2012-05-10T15:51:08.057 に答える