Deje que los mensajes flash desaparezcan en la misma página en rieles

Quiero hacer que el mensaje flash desaparezca después de unos segundos. Entonces uso estos códigos:

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

.alert es la clase bootstrap que agrego al mensaje flash.

Y mi aplicación logró la función de inicio / cierre de sesión del usuario solo a través de omniauth. (con Facebook y Google Plus) Los códigos de inicio / cierre de sesión enumerados al final.

Cuando inicio sesión, el mensaje flash desapareció como pensé. Pero cuando me desconecto, el flash no desapareció.

Pero si uso estos códigos, esta función funcionará correctamente. (pero ligeramente diferente de lo que quiero)

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

códigos de inicio / salida:

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

Respuestas a la pregunta(3)

Su respuesta a la pregunta