Почему devise sanitizer возвращает пустой хеш - PullRequest
0 голосов
/ 28 января 2019

Я пишу приложение на Rails 5 только для API и использую гем devise-jwt (и devise) для аутентификации пользователей.Я пытаюсь настроить сильные параметры в моем пользовательском 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

Это вывод консоли, когда я делаю POST-запрос к API через почтальона:

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) Iполучить пустой хеш, и мой вышеупомянутый POST выдает ошибки проверки, которые я установил для пустых полей.Пожалуйста, помогите мне выяснить, чего мне не хватает, спасибо.

(Rails 5.2 / Devise 4.2)

1 Ответ

0 голосов
/ 28 января 2019

Param user отсутствует в вашем хэше params:

{"user": {"first_name"=>"john", "last_name"=>"stones", "username"=>"johnstones", "email"=>"john@stones.com"} }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...