我有一个简单的控制器指定:
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}
哦,重要的注意,使用'=>',而不是'='…这是散列,不是赋值