0

私は私が持っている問題を次のように単純化しました

このようなルートがあります

namespace :client do
  resources :thing, :only => [:index]
end

と簡単なrspecテスト

describe Client::ThingController do
  describe "GET 'index'" do
    it "returns http success" do
      get 'index'
      response.should be_success
    end
  end
end

ただし、私がやりたいのは、リソースへのアクセスに使用するURLを変更することです。

/client/thing.json

/api/client/v1/thing.json

1)ルートとrspecを更新するにはどうすればよいですか?

次に、api_versionを抽出できるようにURIをパラメーター化する必要がある場合

/api/client/[api_version]/thing.json

2)これは私のルートと単純なrspecテストにどのように影響しますか?

4

1 に答える 1

1

投稿する前に@Moriが提案したことを以前に試しましたが、提案された複数のルートがなければ、元の投稿でそのことを言及する必要がありました。

私が最終的にそれを機能させたのは:

1)routes.rb追加しました

match "api/client/:api_version/thing" => 'client/thing#index'

注:先頭の「/」が欠落している場合、つまりmatch "/api/...=>match "api/...すべての違いがにあるようrspecです。

2)そして私のrspecでthing_controller_spec.rb私は今これを持っています

describe Client::ThingController do
  describe "GET 'index'" do
    it "returns http success" do
      get 'index', :api_version => 'v1'
      response.should be_success
    end
  end
end

routes.rb以前は近くにいましたが、ブラウザでURLに移動できたとしても、それが先頭の「/」でした。

于 2012-06-19T22:20:41.893 に答える