我正在编写一个纯API的Rails 5应用程序,并使用devise-jwt (和devise) gem进行用户身份验证。我正在尝试在我的自定义registrations_controller中配置强参数。在application_controller.rb中
before_action :configure_permitted_parameters, if: :devise_controller?
def configure_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:first_name, :last_name, :username, :email])
end在registrations_controller.rb中
def create
build_resource(sign_up_params)
resource.save
#json response defined in application_controller.rb
render_resource(resource)
end这是我通过Postman向API发出POST请求时控制台的输出:
Parameters: {"first_name"=>"john", "last_name"=>"stones", "username"=>"johnstones", "email"=>"john@stones.com"}
这是将params打印到控制台的输出:
<ActionController::Parameters {"first_name"=>"john", "last_name"=>"stones", "username"=>"johnstones", "email"=>"john@stones.com", "controller"=>"registrations", "action"=>"create"} permitted: false>
尽管如此,当我执行devise_parameter_sanitizer.sanitize(:sign_up)时,我得到了一个空的散列,并且我前面提到的帖子抛出了我为包含空白字段而设置的验证错误。请帮我找出我错过了什么,谢谢。
(Rails 5.2/Devise 4.2)
发布于 2019-01-28 16:02:44
参数散列中缺少参数user:
{"user": {"first_name"=>"john", "last_name"=>"stones", "username"=>"johnstones", "email"=>"john@stones.com"} }https://stackoverflow.com/questions/54397648
复制相似问题