Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/62.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何在rails上通过json接受post请求?_Ruby On Rails_Json_Ruby On Rails 3_Api_Ruby On Rails 3.2 - Fatal编程技术网

Ruby on rails 如何在rails上通过json接受post请求?

Ruby on rails 如何在rails上通过json接受post请求?,ruby-on-rails,json,ruby-on-rails-3,api,ruby-on-rails-3.2,Ruby On Rails,Json,Ruby On Rails 3,Api,Ruby On Rails 3.2,我有一个控制器,接受html和json格式的数据。我想知道如何从浏览器的REST客户端的POST请求中接受json格式的数据空值存储在数据库中。如何将Json格式的数据转换成字符串存储在数据库中?我使用rablgem来过滤json内容RubyonRails您可能想看看serialize类方法: 这使得从数据库检索时,可以轻松保存传入的JSON格式并将其解析为哈希。您到底想做什么?你把JSON作为一个字符串?为什么要再次将其转换为字符串?您能举个例子说明传入数据的外观以及如何存储吗?@thors

我有一个控制器,接受html和json格式的数据。我想知道如何从浏览器的REST客户端的POST请求中接受json格式的数据空值存储在数据库中。如何将Json格式的数据转换成字符串存储在数据库中?我使用rablgem来过滤json内容RubyonRails

您可能想看看serialize类方法:


这使得从数据库检索时,可以轻松保存传入的JSON格式并将其解析为哈希。

您到底想做什么?你把JSON作为一个字符串?为什么要再次将其转换为字符串?您能举个例子说明传入数据的外观以及如何存储吗?@thorstenmüller我想将Json转换为字符串以存储在数据库中。它在数据库中存储空值。这是我通过post请求{“name”:“test”,“email”:test@test.com“,“反馈”:“测试”}我得到的输出是{created_at:“2014-02-19T10:46:28Z”email:null反馈:null id:29 name:null更新_at:“2014-02-19T10:46:28Z”}好的,所以您希望获得JSON的单个项作为字符串。(实际上,您并不希望将整个JSON转换为一个字符串,但更可能将JSON转换为哈希)。您应该发布控制器代码,并请添加params散列作为示例,这样我们就可以看到实际到达服务器的内容。(顺便说一句:你可以编辑你的问题)@thorstenmüller我已经用脚手架创建了控制器。我不知道如何从json格式的post响应中接受数据并将其存储在数据库中。Rails会将您的所有数据转换为哈希(这是您实际希望与ActiveRecord一起使用的)。尤其是URL参数。现在这取决于前端如何将这些内容添加到帖子中。不必为电子邮件和反馈使用单个参数,您可以在参数中获得一个带有序列化JSON的字符串,比如说
params[:JSON_stuff]
,然后您希望将其转换为哈希(简单,只需使用JSON.parse[:JSON_stuff])。尽管对于细节,我们需要确切地知道您在参数中得到了什么(您可以将行
debug params
添加到控制器中以查看此内容),但这很可能不是OP真正想要的。这更像是试图绕过问题(实际上没有问题,因为很容易将传入的JSON转换为哈希并存储结果)。这样,OP将失去搜索电子邮件的选项。只有当这些数据更“被动”时,序列化才有意义。那么为什么不按rails的方式进行呢?在资源控制器中设置一个create操作,并使用JSON.parse()解释传入的JSON字符串,然后将其放入模型中并保存。再加上强参数,即使绕过模型验证,这也是小菜一碟。是的,这件事其实很简单。但是OP对Rails来说似乎是新事物,并且在发现这些片段如何实际协同工作方面存在问题。看到我上面的评论,我只是想让他展示params散列中的实际内容,以及传入的JSON的外观,以及它存储在params中的键。从那里开始就很容易了。