маршрутизация rails3 и API на основе yaml с использованием devise и cancan - PullRequest
0 голосов
/ 13 августа 2011

У меня есть приложение, которое будет иметь API с пространством имен / api / v1 /:

namespace :api do
  namespace :v1 do
    resources :gateways do
      resources :mappings do
        # maybe more stuff
      end
    end
  end
end

мое приложение использует devise и cancan.

Мой контроллер отображений в app / controllers / api / v1 / mappings_controller.rb работает корректно из тестовых примеров rspec, если я пропущу: format =>: yaml (запрос HTML и получение 406). Если я спрашиваю: yaml, кажется, что devise считает, что мой тестовый пользователь не разрешен.

Мой тестовый пример глуп:

  describe "Agent access to mappings" do
    it "gets a list of mappings that includes test_user mapping" do
      @test_agent = users(:firewallagent)
      sign_in(@test_agent)    
      get :show, {:gateway_id => 1, :id => 2} #, :format => :yaml
      assert_response 200
    end
  end

Я не вижу ничего в devise / warden, который бы относился к конкретному формату, но, возможно, я пропустил это.

1 Ответ

0 голосов
/ 21 августа 2011

Ошибка состояла в том, что: format =>: yaml должен входить в первый хеш, а не во второй хеш для получения.Итак:

get :show, {:gateway_id => 1, :id => 2, :format => :yaml}
...