2015-02-06 77 views
0

我一直在爲這個任務奮鬥幾個小時。由於我以前從未使用JSON格式,因此我不知道如何從我接收到的端點API中提取參數。如何從Ruby on Rails中的JSON edpoint url中提取參數?

比方說,我有網址是這樣的:

/endpoint/name=anna&[email protected] 

但請求格式爲:

/endpoint.json?name=:name&email=:email 

我如何提取這些參數?我試着像這樣創建方法:

def get_params 
    response = request.body 
    @user = JSON.parse(response) 
end 

但我什至不知道如何正確地進行測試。

我應該爲POST創建路由嗎?

回答

0

您可以爲JSON端點創建正常路由。查詢字符串參數將一如既往地通過params散列可用。

0

如果您的網址是/endpoint.json?name[]=anna&email[][email protected](即只是一個Endpoint資源,響應JSON普通索引路徑),就可以得到名稱陣列params[:name]與​​電子郵件陣列。

+0

你的意思是我可以像這樣解壓縮: '@name = JSON.parse(params [:name])'?當我嘗試這個時,我得到了757:意外令牌錯誤。 – ZuzannaSt 2015-02-06 23:43:13

+0

不需要解析JSON。在你的情況下,'params [:name]'將是一個名稱數組(在這個特殊的例子中,只是一個名字的數組:「anna」)。你可以說'@names = params [:name]'或'@name = params [:name] .first'。當然,請看http://guides.rubyonrails.org/action_controller_overview.html#hash-and-array-parameters – finishingmove 2015-02-06 23:48:36

+0

哦!我用'/endpoint.json?name =:name&email =:email'這一行更新了我的答案,讓我感到困惑。我確實已經從params中獲得了vaues,並且@vpsz說我會,但我現在有一些路由錯誤。我正在使用URL格式測試所有內容:'/?name = anna'而不是'/ endpoint/name = anna'。沒有問號,沒有文件夾路徑。你碰巧知道我應該爲這個POST請求建立什麼路線? – ZuzannaSt 2015-02-07 16:10:45