2016-08-25 2 views
0

Честно говоря я знаю, как изменить сообщения об ошибках изобрести через devise.en.ymlНастройка проверки, когда пользователь вход в Разрабатывает

У меня есть сайт, который использует Завещание для проверки подлинности.

Хотя вход, если адрес электронной почты и пароль пустой, он дает мне ошибку

Неверный адрес электронной почты или пароль.

, но я хочу, чтобы показать различные сообщения об ошибках для пользователей для различных случаев:

Мол, , если адрес электронной почты поле пустым и пароль присутствует, чем показать

Email не может быть пустым ,

еще, если поле пароля пустым и адрес электронной почты присутствует, чем показать

Пароль не может быть пустым.

еще пароль и адрес электронной почты является неаутентифицированными, чем показывает

недопустимого адрес электронной почты или пароль

, который в настоящее время работает.

Я не хочу удалять :validatable из моего модального.

я устал validates :email, :presence => true, :email => true

из here

но когда я подписаться на него показывают 2 ошибки

Email не может быть пустым.

одна ошибка завещанию и другой для модальных ..

скажите, пожалуйста, как это сделать проверку только для пользователя входе в систему.

Заранее спасибо. :)

+0

Вы можете переопределить действие созданного сеанса контроллера сеанса и добавить некоторые проверки их? – Navin

+0

@ Навин благодарит вас за ответ. Но что, если я не хочу переопределять контроллер сессии ... ?? – Vishal

+0

у вас есть проверка на наличие электронной почты и пароля, независимо от того, присутствуют они или нет или недействительны с различными сообщениями об ошибках, поэтому я предлагаю вам переопределить контроллер сеанса. – Navin

ответ

0

Попробуйте это создать действие вашего DEViSE сессионного контроллера ,

def create 
    user = User.find_by(email: params[:user][:email]) 
    if user 
    if user.valid_password?(params[:user][:password]) 
     sign_in_and_redirect user 
    else 
     flash[:error] = "Please enter the valid password." 
    end 
    end 
end 
+0

thnx bro .. Я добавил эти строки , если params [: user] [: email] == '' && params [: user] [: password] == '' redirect_to login_path,: flash => {: error => «Электронная почта и пароль не могут быть пустыми»} elsif params [: user] [: email] == '' redirect_to login_path,: flash => {: error => «Электронная почта не может быть пустым»} elsif params [: user] [: password] == '' redirect_to login_path,: flash => {: error => «Пароль не может быть пустым»} еще super конец и его работающий штраф .. я хочу предложение ur. :) – Vishal

+0

хорошо, вам также нужно обработать случай с правильной электронной почтой и паролем. Если ваша проблема решена, то, пожалуйста, примите ответ. – Navin

+0

i accepetd ответ.,. счастливый :) – Vishal

0

Пожалуйста, предпочитают этот Link

Если пользователь подписывает, вы можете редактировать все сообщения об ошибках в devise.en.yml под config/locales.

Смежные вопросы