ruby-on-rails - Rails request_parameters 包括 Controller 信息,如何只获取 POST 数据

标签 ruby-on-rails request

我发送一个应用程序/json 发布请求:

curl 'http://127.0.0.1:3000/api/flowers/growth' -H 'Content-Type:application/json' -d '{"type": 1}'

然后我使用 request.request_parameters ,输出为:
{"type"=>1, "flower"=>{}}

为什么会自动添加“flower”=>{}?

我怎样才能只获取 POST 数据,而不包括 Controller 信息

最佳答案

好的,在我自己在这个确切的问题上苦苦挣扎了几个小时,并通过调用堆栈挖掘之后,我找到了答案。

首先,我想解决这个问题的原因是因为如果使用了无效元素,我想向发件人提供反馈,而不是仅仅接受有效值而忽略其他值。因此,此页面上的其他解决方案对我不起作用。

所以问题的关键是这个叫做 ActionController::ParamsWrapper 的东西。 ,可在 actionpack-4.2.3/lib/action_controller/metal/params_wrapper.rb 中找到.此代码将 Controller 的请求参数包装在 Controller 名称中,以便更轻松地访问。然而,如果你有一个专用的 api JSON 接口(interface),这只会让生活变得更糟。

要告诉这个急切的“ helper ”,请在您的 Controller 中添加以下行:
wrap_parameters format: []

关于ruby-on-rails - Rails request_parameters 包括 Controller 信息,如何只获取 POST 数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11191519/

相关文章:

ruby-on-rails - Ruby on Rails内容管理系统?

javascript - 如何等待http请求完成? Javascript

java - ElasticSearch bool 查询请求

ruby-on-rails - 你如何在 rails postgresql 数据库中创建一个 BLOB 列

ruby-on-rails - 如何在 Ruby 中获取对象的名称?

javascript - 如何分析 node.js 中的传出 http 请求?

request - Dart - 使用 cookie 请求 GET

ruby-on-rails - 如何在 Rails/Rspec 的开发和生产中检索主机 url?

ruby-on-rails - 其中哪一个是与 "latest rails"应用程序一起使用的更好选择? Mongrel、Thin、WEBrick 和Passenger

ruby-on-rails - 在 Rails 应用程序中使用模块建模