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