Lassen Sie Flash-Nachrichten auf derselben Seite in Schienen verschwinden

Ich möchte, dass die Flash-Nachricht nach einigen Sekunden ausgeblendet wird. Also benutze ich diese Codes:

$(function() {
  $('.alert').slideUp(1500);
});

.alert ist die Bootstrap-Klasse, die ich der Flash-Nachricht hinzufüge.

Und meine App hat die An- / Abmeldefunktion nur über Omniauth erreicht. (mit Facebook und Google Plus) Die am Ende aufgelisteten Login / Logout-Codes.

Wenn ich mich anmelde, verschwindet die Flash-Nachricht wie ich dachte. Aber als ich mich ausloggte, verschwand der Blitz nicht.

Wenn ich diese Codes verwende, funktioniert diese Funktion jedoch ordnungsgemäß. (aber etwas anders als ich will)

$(function() {
  setInterval(function(){
    $('.alert').slideUp(500);
  }, 1000);
});

Login / Out-Codes:

class SessionsController < ApplicationController
  def create
    auth_data = request.env['omniauth.auth']
    auth = Authorization.find_by( provider: auth_data['provider'], uid: auth_data['uid'] ) 
    user = auth.nil? ? User.create_with_omniauth(auth_data) : auth.user
    session[:user_id] = user.id
    if !user.email
      redirect_to edit_user_path(user), :alert => "Please enter your email address."
    else
      redirect_to root_url, :notice => "Signed in!"
    end
  end

  def destroy
    reset_session
    redirect_to root_url, :notice => "Signed out!"
  end

  def new
  end

  def failure
    redirect_to root_url, :alert => "Authentication error: #{params[:message].humanize}"
  end
end

Antworten auf die Frage(3)

Ihre Antwort auf die Frage