Динамически изменить цвет уведомления в Rails - PullRequest
0 голосов
/ 05 апреля 2019

У меня есть страница входа, которая состоит из формы, где пользователь вводит адрес электронной почты и пароль. Я проверяю, совпадают ли адрес электронной почты и пароль с записью в активной записи, и если это так, у меня появляется сообщение «Signed In», которое по умолчанию зеленого цвета, но у меня есть другое уведомление о неверном входе в систему, и у меня возникают проблемы с тем, как это сделать. сделать это уведомление красным вместо зеленого.

Вот мой логин index.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 Ответ

1 голос
/ 05 апреля 2019

просто измените в вашем контроллере:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...