2016-11-22 21 views
0

我有以下線在我的控制器測試:Rails的控制器測試:獲取與查詢參數不正確編碼

get brands_url, params: { test: 1, test2: 2}, as: :json

我要測試的API請求brands?test=1&test1=2

在控制器指數的方法,所述對象PARAMS結束看起來像:

<ActionController::Parameters {"{\"test\":1,\"test2\":2}"=>nil, "controller"=>"brands", "action"=>"index", "format"=>"json", "brand"=>{}} permitted: false>

params哈希表被轉換爲JSON和解釋爲一個鍵。

如果我刪除as: :json選項,我得到了我想應該是預期的行爲:

<ActionController::Parameters {"test"=>"1", "test2"=>"2", "controller"=>"brands", "action"=>"index"} permitted: false>

任何想法,爲什麼發生這種情況?

回答

0
brands?test=1?test1=2 

是不是一個有效的網址。嘗試將第二個?更改爲&

brands?test=1&test1=2 
+0

我實際上沒有明確地使用那個url/query字符串,我只是將它顯示爲使用'get'方法(模擬請求)時將生成的請求類型的示例。我糾正了錯字。 – cgat

0

不是將PARAMS在params哈希表相反,我反而不得不把參數傳入到url幫手brands_url。所以下面的工作:

get brands_url(test: 1, test2: 2), as: :json, xhr: true

根據軌道文檔,原有的技術應該有工作,雖然。