Unpermitted parameter: :user?

Я отправляю на сервер запрос
curl -X POST \
  http://localhost:3000/user \
  -H 'Content-Type: application/json' \
  -d '{
	"email": "kayn231222@yandex.ru",
	"password": "123456",
	"password_confirmation": "123456"
}'


В контроллере у меня стоит
def user_params
    params.permit(
      :email, :password, :password_confirmation
    )
  end


Сама модель
class User < ApplicationRecord
  has_secure_password
  validates :email, presence: true, uniqueness: true
  validates :email, format: { with: URI::MailTo::EMAIL_REGEXP }
  validates :password,
            length: {minimum:6},
            if: -> { new_record? || !password.nil? }
end


Но в логах я вижу следующую ситуацию
Processing by UserController#create as */*
  Parameters: {"email"=>"kayn23122@yandex.ru", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "user"=>{"email"=>"kayn23122@yandex.ru"}}
Unpermitted parameter: :user


Откуда может взятся данный параметр user, если я его не передаю напрямую?
  • Вопрос задан
  • 529 просмотров
Решения вопроса 1
zorar4ik
@zorar4ik
Full stack overflow
Вот так передаются permitted_params
params.require(:user).permit(:email, :password, :password_confirmation)


Вот тут почитать можно
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@Mcalexvrn
Привет! Посмотри в файле config/initializers/wrap_parameters.rb

ActiveSupport.on_load(:action_controller) do
wrap_parameters format: [] # пустой массив для отключения оборачивания параметров.
end

читать здесь
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы