2013-03-28 5 views
0

Je souhaite mettre à jour inspector_id dans la table Tâches avec le paramètre employee_id de l'utilisateur actuel. Mais, le modèle ne me laissera pas accéder à current_user.rails modèle before_update ne peut pas accéder à current_user

C'est le code que j'essaie d'utiliser dans le modèle Tâche.

before_update :update_inspector 

protected 
def update_inspector 
    self.inspector_id = current_user.employee 
end 

je reçois:

NameError (undefined local variable or method `current_user' 

Répondre

1

Typiquement current_user est défini dans le contrôleur d'application. Cela signifie que la méthode est uniquement disponible dans les contrôleurs, pas dans les modèles. L'erreur que vous voyez est conforme à cet état de choses. Si vous avez besoin de current_user dans le modèle Task, vous devrez le passer quelque part.

0

Vous pouvez toujours accéder aux informations de session qui ont généré la variable current_user dans le modèle.

Questions connexes