ruby-on-rails - Rails 控制器参数与发送参数不同
问题描述
Rails 参数与实际发送参数不同
邮递员发送的参数:
{
"first_name": "Arun",
"last_name": "Deepak",
"email": "arun.deepak@abc.com",
"password": "Abc@123",
"confirm_pasword": "Abc@123",
"user_type": "seller"
}
控制器中的参数:
{
"first_name"=>"Arun", "last_name"=>"Deepak",
"email"=>"arun.deepak@abc.com",
"password"=>"[FILTERED]", "confirm_pasword"=>"Abc@123",
"user_type"=>"seller",
"user"=>{"email"=>"arun.deepak@abc.com", "user_type"=>"seller"}
}
控制器:
def create
@user = User.create!(user_params)
render json: @user
end
...
def user_params
params.require(:user).permit(:email, :user_type, :password, :password_confirmation)
end
铁路路线:
namespace :api do
namespace :v1 do
resources :users
end
end
在这里,控制器中的参数如何变化?
我知道我发送了错误的参数,但是 user_params 如何接受错误的参数?
请求参数是如何修改的?
解决方案
控制器中的参数不会更改。也许您正在尝试发送first_name
和last_name
作为用户参数。它在用户创建期间给你一个错误。那是因为你的user_params
方法只返回用户下的参数,使用 this params.require(:user)
。
Parameters: {
"user": {
"email": "arun.deepak@abc.com",
"user_type": "seller",
"first_name": "Arun",
"last_name": "Deepak",
"password": "[FILTERED]",
"confirm_pasword": "Abc@123"
}
}
推荐阅读
- reactjs - 如何创建具有特定范围的 reactjs 应用程序
- typescript - switchMap 给出 OperatorFunction
' 不可赋值 - reactjs - 更改主题(组件重新渲染)后反应谷歌地图不会更新样式?
- r - 如何按年份创建百分比列并输入 R
- wpf - 子菜单弹出背景透明
- vue.js - 生产构建Vue js,无法访问构建文件夹中的图像文件
- enterprise-architect - 企业架构师 ER 图。为什么不显示多重性值?
- r - 如何在 R 中修复“范围 0 x 2 的表”
- laravel - Laravel broadcast()->toOthers() 方法不起作用,仍然重复(Laravel 8 / Pusher / Laravel Echo / VueJs 3
- sql-server - 这个 SQL 子查询如何正确向量化?