Übergeben von Params an CanCan in RoR

8

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")

tun

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.

    
Çağdaş 27.02.2012, 21:04
quelle

3 Antworten

25

Fügen Sie in ApplicationController Folgendes hinzu:

%Vor%     
cailinanne 27.02.2012, 21:51
quelle
6

Die aktuellste Antwort finden Sie im CanCan-Wiki: Ссылка

    
smcgregor 06.05.2012 03:51
quelle
1

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:

%Vor%

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:

%Vor%

Dann fange ich nur die Ausnahme auf ApplicationController-Ebene.

    
Simon Bagreev 27.02.2012 22:01
quelle

Tags und Links