2010-03-22 2 views
0

J'utilise la gemme authlogic pour l'authentification. Je l'ai suivi les étapes: http://railscasts.com/episodes/160-authlogicauthlogic dans Rails

Je le code suivant:

# config/environment.rb 
config.gem "authlogic" 

# models/user.rb 
acts_as_authentic 

# users_controller.rb 
def create 
    @user = User.new(params[:user]) 
    if @user.save 
    flash[:notice] = "Registration successful." 
    redirect_to root_url 
    else 
    render :action => 'new' 
    end 
end 

def edit 
    @user = current_user 
end 

def update 
    @user = current_user 
    if @user.update_attributes(params[:user]) 
    flash[:notice] = "Successfully updated profile." 
    redirect_to root_url 
    else 
    render :action => 'edit' 
    end 
end 

# user_sessions_controller.rb 
def create 
    @user_session = UserSession.new(params[:user_session]) 
    if @user_session.save 
    flash[:notice] = "Successfully logged in." 
    redirect_to root_url 
    else 
    render :action => 'new' 
    end 
end 

def destroy 
    @user_session = UserSession.find 
    @user_session.destroy 
    flash[:notice] = "Successfully logged out." 
    redirect_to root_url 
end 

# application_controller.rb 
filter_parameter_logging :password 

helper_method :current_user 

private 

def current_user_session 
    return @current_user_session if defined?(@current_user_session) 
    @current_user_session = UserSession.find 
end 

def current_user 
    return @current_user if defined?(@current_user) 
    @current_user = current_user_session && current_user_session.record 
end 

# config/routes.rb 
map.login "login", :controller => "user_sessions", :action => "new" 
map.logout "logout", :controller => "user_sessions", :action => "destroy" 

Je l'ai tout travail, sauf que je voudrais avoir une user_id en session, je peux suivre afin que l'utilisateur enregistré qui poste, où dois-je le définir?

Répondre

1

Pourquoi ne pas simplement utiliser l'ID de la méthode d'assistance current_user?

Comme: current_user.id

+0

Merci @Ben cette façon ce que je sens cherche. – Adnan

1

Vous devriez avoir l'identifiant de l'utilisateur authentifié dans session["user_credentials_id"]