私は、JSON形式でバージョン管理されたREST APIを備えたRailsアプリケーションに取り組んでいます(この優れたRyanのキャストによると:http://railscasts.com/episodes/350-rest-api-versioning)。
たとえば、spec/requests仕様があります。
require 'spec_helper'
describe "My Friends" do
describe "GET /my/friends.json" do
it "should get my_friends_path" do
get v1_my_friends_path, {}, {'HTTP_ACCEPT' => 'application/vnd.myapp+json; level=1'}
response.status.should be(401)
end
end
end
そしてそれはうまくいきます。しかし(この例を維持して)ルーティング仕様をどのように書くことができますか?たとえば、この仕様は正しくありません。
require 'spec_helper'
describe "friends routing" do
it "routes to #index" do
get("/my/friends.json", nil, {'HTTP_ACCEPT' => 'application/vnd.myapp+json; level=1'}).
should route_to({ action: "index",
controller: "api/v1/private/my/friends",
format: "json" })
end
end
私はさまざまな方法を試しました(request.headers['Accept']
and @request.headers['Accept']
、where request
is undefined and @request
is nil); どうしたらいいのかわからない。
私はRuby1.9.3、Rails 3.2.6、rspec-rails2.11.0を使用しています。ありがとう。