我有一个简单的控制器,指定:
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}
哦,重要的是,使用’=>’,而不是’=’…这是一个哈希,而不是一个作业.