2010-10-20 20 views

Répondre

0

Je fais beaucoup de mon contrôleur:

before_filter :require_user 

def require_user 
    unless current_user 
    store_location 
    flash[:notice] = "You must be logged in to access this page" 
    redirect_to login_url 
    return false 
    end 
end 

Mais en fonction de votre rôle (administrateur, utilisateur, membre), vous pouvez effectuer la même tâche. De cette façon, avant que la vue ne soit rendue, votre contrôleur s'occupera de l'endroit où il doit être dirigé.

+0

Merci Voyage, je suppose que mon cas d'utilisation est plus de savoir si je veux montrer aux utilisateurs un bouton gris, un bouton désactivé, un bouton bleu, ou aucun bouton du tout, en fonction de l'état de l'utilisateur actuel. Ce n'est pas tellement un problème de permissions ou de contrôle d'accès. – a10s

+0

Impossible d'accomplir la même tâche via le contrôleur via un before_filter. Et basé sur le cas de la méthode, il s'applique à quels boutons ils voient dans la vue? – Trip

+0

Je pourrais probablement, mais je n'aime pas l'idée de mettre du code lié à la vue dans les contrôleurs. Je vérifie les autorisations dans le contrôleur, mais dans mon cas, il existe de nombreux états pour l'interface utilisateur qui n'ont rien à voir avec les autorisations, liées à ce que l'utilisateur a fait ou n'a pas encore fait. Dans cette situation, je veux basculer en fonction de l'état de l'utilisateur et rendre différents partiels, utiliser différents noms de classes CSS, ou simplement afficher un texte différent. – a10s