2010-07-09 6 views

Répondre

4

définir une méthode current_user dans votre ApplicationController

class ApplicationController < ActionController::Base 
    helper_method :current_user 

    def current_user 
     # ... 
     # return an instance of User class 
     # can be just: 
     # @current_user ||= User.find(session[:user_id]) 
     # if you set session[:user_id] when the user logs in 
    end 
end 

De cette façon, vous pouvez accéder à l'intérieur current_user.id autres contrôleurs.

+0

Vous ne répondez pas à la question parce qu'il Présumons il utilise un plugin d'authentification – shingara

+1

Je ne pensais pas qu'il utilisait des plugins. S'il a une action de connexion, il garde le 'user_id' quelque part. C'est tout ce que j'ai supposé. –

+0

Oui, indépendamment du fait qu'il utilise un plugin d'authentification, il est toujours parfaitement valide pour définir 'current_user', et plus que probablement il utilise un plugin quand même. – Karl

3

Vous avez besoin d'une session d'utilisation.

Vous mettez votre nom d'utilisateur en session après la connexion

session[:user_id] = user.id 

Et dans tout votre contrôleur, vous pouvez aller vous chercher userId de cette session

User.find(session[:user_id]) 
+0

S'il vous plaît voir mon commentaire dans ma réponse pour reconsidérer votre vote vers le bas. tks. –

Questions connexes