我一直在为这个任务奋斗几个小时。由于我以前从未使用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创建路由吗?
你的意思是我可以像这样解压缩: '@name = JSON.parse(params [:name])'?当我尝试这个时,我得到了757:意外令牌错误。 – ZuzannaSt 2015-02-06 23:43:13
不需要解析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
哦!我用'/endpoint.json?name =:name&email =:email'这一行更新了我的答案,让我感到困惑。我确实已经从params中获得了vaues,并且@vpsz说我会,但我现在有一些路由错误。我正在使用URL格式测试所有内容:'/?name = anna'而不是'/ endpoint/name = anna'。没有问号,没有文件夹路径。你碰巧知道我应该为这个POST请求建立什么路线? – ZuzannaSt 2015-02-07 16:10:45