#ruby-on-rails #ruby
#ruby-on-rails #ruby
Вопрос:
У меня есть страница входа в систему, которая состоит из формы, в которой пользователь вводит адрес электронной почты и пароль. Я проверяю, соответствуют ли адрес электронной почты и пароль записи в активной записи, и если это так, у меня появляется уведомление с надписью «Вход в систему», которое по умолчанию является зеленым, но у меня есть другое уведомление о недопустимом входе, и у меня возникают проблемы с тем, как сделать это уведомление красным вместо зеленого.
Вот мой индекс входа в систему.html.erb
<p id="notice"><%= notice %></p>
<h1>Please Login</h1>
<%= form_for(:user, :url => { :action => "login" }) do |form| %>
<%= form.text_field :email, :placeholder => 'Email'%>
<br><br>
<%= form.password_field :password, :placeholder => 'Password'%>
<br><br>
<%= form.submit 'Login' %>
<%= link_to "Cancel", home_index_path %>
<% end %>
Вот мой login_controller.rb
class LoginController < ApplicationController
def index
end
def login
email = params[:user][:email]
password = params[:user][:password]
@user = User.find_by(email: email, password: password)
respond_to do |format|
if @user.try(:id)
format.html { redirect_to login_index_path, notice: 'Signed In'}
else
format.html { redirect_to login_index_path, notice: 'Invalid username/password combination' }
end
end
end
end
Ответ №1:
просто измените свой контроллер:
respond_to do |format|
if @user
format.html { redirect_to login_index_path, notice: 'Signed In'}
else
format.html { redirect_to login_index_path, alert: 'Invalid username/password combination' }
end
end
Изменение ключа notice
на alert
в случае, если пользователь не найден, изменит цвет: D