Я пытаюсь создать приложение с Rails в качестве провайдера API и немного застрял во время настройки процесса аутентификации пользователя. Всякий раз, когда я пытаюсь создать нового пользователя почтальоном, я получаю сообщение о том, что мой контроллер не может распознать параметры пользователя и выдает ошибку:
Начинается POST "/ api / v1 / create" для :: 1 в 2020-02-23 02:36:29 +0100 Обработка Api :: V1 :: UsersController # создать как / Параметры: {"password" => "[FILTERED]", "password_confirmation" => "[FILTERED]", "username" => "Andrzej Strzelba", "email" => "andrzej@strzelba.com"} {"password" => "qwertyUI1", "password_confirmation" => "qwertyUI1", "username" = > "Andrzej Strzelba", "email" => "andrzej@strzelba.com", "controller" => "api / v1 / users", "action" => "create"} Выполнено 400 неверных запросов за 1 мс (ActiveRecord: 0,0 мс )
ActionController :: ParameterMissing (параметр отсутствует или значение пусто: пользователь): app / controllers / api / v1 / users_controller.rb: 28: in user_params' app/controllers/api/v1/users_controller.rb:8:in
create '
и мой контроллер:
class UsersController < ApplicationController
skip_before_action :verify_authenticity_token
def create
puts params
@user = User.new(user_params)
if @user.save
render json: { status: :created, user: @user}
else
render json: {status: 500, errors: @user.errors.full_messages }
end
end
private
def user_params
params.require(:user).permit(:username, :email, :password, :password_confirmation)
end
end
Я почти уверен, что проблема вызвана отсутствием переноса моих параметров с помощью клавиши "user". Я имею в виду user: {email: '...', username: '...' ect}, но я не совсем уверен, как решить эту проблему в Postman. Я также пытался отправить ниже JSON. Но и это не удалось:
{
"user":
{
"username": "Andrzej Strzelba",
"email": "andrzej@strzelba.com",
"passowrd": "qwertyUI1!",
"password_confirmation": "qwertyUI1!"
}
}
Как это исправить?