ruby – 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的内容类型.

有人有什么想法在这里做错了吗?我怀疑我正在用哈希法或其他东西拧上红宝石语法,但是我的头撞在墙上,没有到达任何地方.

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

提前致谢!

解决方法

这是你打电话的功能
get(action,parameters = nil,session = nil,flash = nil)

:格式部分仍然是一个参数,当然不是会话或闪存.尝试:

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

哦,重要的是,使用’=>’,而不是’=’…这是一个哈希,而不是一个作业.

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...