Ich habe einen Controller mit einer Methode wie;
%Vor% Aber ich habe Benutzer mit verschiedenen Rollen. Daher nutze ich CanCan, um die Zugangskontrolle zu verwalten.
Jetzt will ich X Rolle kann die Aktion show
in Controller Iff params[:format].eql?("csv")
Ich denke, es kann wie sein: can :show, resource if params[:format].eql?("csv")
. Also, wie kann ich Parameter an die Fähigkeit senden. Rb?
Irgendeine Idee?
Danke.
can
benötigt zwei Argumente: erstens ist der Typ der Aktion, die der Benutzer für eine Ressource auszuführen versucht, zweitens ist die Ressource selbst (kann Klassenname oder Instanzvariable sein). Wenn Sie Ihre Fähigkeit richtig eingestellt haben, sollten Sie in der Lage sein, so etwas zu tun:
Vergessen Sie nicht, dass Sie sich vor der Ausführung von CanCan-Prüfungen authentifizieren müssen.
can?
Methode gibt nur wahr oder falsch zurück. Normalerweise verwende ich authorize!
Methode, um Fähigkeiten zu überprüfen. Im Gegensatz zu can
würde der CanCan::AccessDenied
Fehler steigen, den Sie problemlos retten und verarbeiten können. Etwas in den Linien von:
Dann fange ich nur die Ausnahme auf ApplicationController-Ebene.
Tags und Links ruby ruby-on-rails cancan