У меня есть модель User
с validates_uniqueness_of :email
. В интерфейсе (реагировать), если я пытаюсь зарегистрироваться по адресу, который уже занят, rails возвращает ошибку 422. Как я могу вместо этого отправить сообщение об ошибке внешнему интерфейсу?
class RegistrationsController < ApplicationController
def create
user = User.create!(
email: params['user']['email'],
name: params['user']['name'],
password: params['user']['password'],
password_confirmation: params['user']['password_confirmation']
)
if user
session[:user_id] = user.id
render json: {
status: :created,
user: user
}
else
render json: { status: 500 }
end
end
end
React (ax ios):
.catch(error => {
console.log("registration error", error);
});
Консоль отображает ошибку как 422 (Unprocessable Entity)
при попытке записать ошибку. В ответе не отображается ошибка activerecord
В то время как в консоли rails я вижу ошибку сообщение
Решено, проблема была в использовании create!
Удалось отобразить ошибку с помощью
render json: { errors: user.errors.full_messages }, status: 500
error.response.data.errors.join("; ")