Rails 3 - 测试控制器的 GET 方法 - 尝试使用 JSON 并得到 406 错误



我有一个简单的控制器指定:

respond_to :json

当我试图构建一个像这样调用它的功能测试时:

test "GET" do
  get 'index', :format => :json
end

一切正常。但是,如果我尝试像这样传入一个查询参数:

test "GET" do
  get 'index', {:my_param = '1234'}, :format => :json
end

我得到一个406错误从控制器返回。如果我通过response.inspect转储响应,我可以看到@status = 406@header的内容类型为text/html。对于没有传递查询参数的简单情况,如果我通过response.inspect转储响应,我看到@header的内容类型为application/json,正如我在代码中请求的那样。

有人知道我在这里做错了什么吗?我怀疑我用哈希或其他东西搞砸了ruby语法,但我撞了我的头,没有得到任何东西。

我在Mac上运行Ruby 1.9和Rails 3.0.5。

提前感谢!

这是你正在调用的函数:

get(action, parameters = nil, session = nil, flash = nil) 

:format部分仍然是一个参数,当然不是会话或flash。试一试:

get 'index', {:my_param => '1234', :format => :json}

哦,重要的注意,使用'=>',而不是'='…这是散列,不是赋值

相关内容

  • 没有找到相关文章

最新更新