2011-04-12 33 views
12

我有一個簡單的控制器,指定:的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語法,但是我撞到牆壁而沒有到達任何地方。

我在運行Ruby 1.9和Rails 3.0.5的Mac上。

在此先感謝!

回答

26

這是你調用的函數:

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

:format部分仍然是一個參數,肯定不是一個會話或閃光。嘗試:

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

哦,重要的注意事項,使用 '=>',而不是 '=' ...這是一個哈希,而不是分配。

+0

這樣做。謝謝! – Bryan 2011-04-14 11:31:03

相關問題