2017-06-30 63 views
0

我有一個控制器,使用與requirepermit的強參數。當我測試這個端點郵遞員,我不斷收到這樣的:郵遞員發送Rails API強參數錯誤的請求

undefined method `permit' for "{foo: [1,2,3], bar: 1}":String 

我知道這個控制器工作正常,當我提出通過UI發佈請求,但郵遞員測試,每次給我這個錯誤。我通過原始的JSON(應用程序/ json)和相應的內容類型的標頭髮送我的有效負載。

這是我通過直通身體:

{ 
    "foos": {"foo":[1,2,3], "bar": 2675} 
} 

enter image description here

def foos_params 
    params.require(:foos).permit(:foo, :bar) 
    end 
+0

你能分享郵遞員請求/收藏嗎? –

+0

我認爲你沒有把鑰匙作爲字符串傳遞。使請求正文:{「foo」:[1,2,3],「bar」:1} – Sajin

+0

@stackjlei您需要傳遞許可證參數的密鑰。喜歡的用戶:{foo:[1,2,3],bar:1} – Vishal

回答

0

在我看來,

與郵差輸入PARAMS:

鍵:值

FOOS [富]:[1,2,3] # this is string: JSON.stringify([1,2,3]) => "[1,2,3]"

FOOS [巴]:2675

在控制器:

def foos_params 
    params.require(:foos).permit(:foo, :bar) 
end 

但是,我們需要將字符串轉換爲數組:foo

ActiveSupport::JSON.decode(foos_params[:foo]) # => [1, 2, 3] 
0

在頭選項卡添加Content-Type: Application/jsonenter image description here

相關問題