Ruby on rails Rails控制器通过JSON查询获取控制器路由的参数?

Ruby on rails Rails控制器通过JSON查询获取控制器路由的参数?,ruby-on-rails,json,Ruby On Rails,Json,我运行的是Rails 5.0.0.1,有一个名为Voice::NumbersController的控制器,可以通过如下路径访问: scope '/api' do namespace :v1 do namespace :voice do resources :numbers end end end 我想要一个可选参数“number”。出于某种原因,当请求中有内容类型:application/json时,对/api/v1/voice/

我运行的是Rails 5.0.0.1,有一个名为Voice::NumbersController的控制器,可以通过如下路径访问:

  scope '/api' do
    namespace :v1 do
      namespace :voice do
        resources :numbers
      end
    end
  end
我想要一个可选参数“number”。出于某种原因,当请求中有内容类型:application/json时,对/api/v1/voice/numbers的GET请求(不带参数)会将
params[:numbers]
传递给它

这是不是因为与身体的接触混淆了事情?如果我在正文中放入一些内容(即“hello”:5),我会得到以下结果:

  Parameters: {"_json"=>"hello: 5", "number"=>{"_json"=>"hello: 5"}}
这对我来说没有多大意义——设置了“_json”而不是“number”似乎是合理的

有没有办法禁用自动包含“number”参数的功能?

这是

我相信您可以在
config/initializers/wrap_parameters.rb
中禁用它,如下所示:

ActiveSupport.on_load(:action_controller) do
  wrap_parameters format: []
end
您还可以基于每个控制器禁用它:

class Voice::NumbersController < ApplicationController
  wrap_parameters false
  # ...
end
class Voice::NumbersController
这是一个

我相信您可以在
config/initializers/wrap_parameters.rb
中禁用它,如下所示:

ActiveSupport.on_load(:action_controller) do
  wrap_parameters format: []
end
您还可以基于每个控制器禁用它:

class Voice::NumbersController < ApplicationController
  wrap_parameters false
  # ...
end
class Voice::NumbersController