如何解决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
方法仅返回用户下的参数,使用此 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"
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。