簡體   English   中英

為什么設計消毒劑返回空哈希

[英]Why is devise sanitizer returning an empty hash

我正在編寫僅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)我得到了一個空哈希,上述POST引發了我為具有空白字段而設置的驗證錯誤。 請幫助我找出我所缺少的,謝謝。

(Rails 5.2 / Devise 4.2)

您的參數哈希中缺少參數user

{"user": {"first_name"=>"john", "last_name"=>"stones", "username"=>"johnstones", "email"=>"john@stones.com"} }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM