Rails 5 POST请求添加额外的参数?

时间:2018-10-02 20:51:43

标签: ruby-on-rails ruby

我的routes.rb文件包含:

post 'products/:id/favorite', to: 'products#favorite'
delete 'products/:id/unfavorite', to: 'products#unfavorite'
get 'products/:id', to: 'products#show'

在我的产品控制器中,我已允许params.permit(:id)

当我对localhost:3000/products/1/favorite进行无任何正文的发布请求时,我会在rails控制台中看到以下内容:

Parameters: {"id"=>"1", "product"=>{}}
Unpermitted parameter: :product

多余的:product参数来自哪里?

1 个答案:

答案 0 :(得分:2)

得到的是包装参数

https://api.rubyonrails.org/v5.2.1/classes/ActionController/ParamsWrapper.html

您可以将其放置在控制器中以将其关闭

wrap_parameters false

可以在config / initializers / wrap_parameters.rb中进一步自定义此功能