我的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
参数来自哪里?
答案 0 :(得分:2)
得到的是包装参数
https://api.rubyonrails.org/v5.2.1/classes/ActionController/ParamsWrapper.html
您可以将其放置在控制器中以将其关闭
wrap_parameters false
可以在config / initializers / wrap_parameters.rb中进一步自定义此功能