Сейчас я пытаюсь аутентифицировать пользователя. Этот процесс работает. Сейчас для входа в систему у пользователя есть имя пользователя и пароль. Если пользователь вводит правильную информацию, он работает. Если пользователь вводит правильное имя пользователя и неверный пароль, он работает. Если пользователь вводит недопустимое имя пользователя, он не работает. Вот мое создать действие в контроллере сессий:rails session issue when invalid user
def create
user = User.find_by_username(params[:username])
redirect_to root_url if user == nil
if user.password == params[:password]
session[:user_id] = user.id
redirect_to user_path(user.id), notice: "Logged in!"
else
flash.now.alert = "not logged in"
redirect_to root_url
end
end
ошибка, что я получаю то, что нет никакого способа пароля для пользователя. Я знаю, что и поставить в линию
redirect_to root_url if user == nil
, и я также имел линию
redirect_to root_url unless user.password
Оба они не работают и не перенаправляет обратно к корневой URL.
форма является формой Войти. Пользователь создается в администраторе. Я просто пытаюсь проверить, является ли это пользователем. Проблема в том, что если имя пользователя не найдено в пользовательском классе пользователя в действии create, оно становится равным нулю. Имея это в виду, я попытался сказать, если пользователь равен нулю, вернитесь к корневому URL-адресу. Эта часть не работает. – user2184718
'if user && user.password == params [: password]' ???? –
вот и все ... спасибо – user2184718