rails3路由和基于yaml的API,使用设计和cancan

时间:2011-08-13 01:59:57

标签: ruby-on-rails-3 devise cancan

我有一个具有API的应用程序,带有/ api / v1 / namespace:

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,设计似乎认为我的测试用户不被允许。

我的测试用例很简单:

  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

我在设计/监狱中看不到任何特定格式的东西,但也许我错过了它。

1 个答案:

答案 0 :(得分:0)

错误是:format =>:yaml需要进入第一个哈希,而不是进入第二个哈希。所以:

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