2012-04-02 12 views
4

Ich benutze CanCan 2.0 gem für die Autorisierung und high_voltage gem für statische Seiten.Ruby on Rails: CanCan und statische Seiten

In meiner routes.rb Datei ich habe:

match 'about' => 'high_voltage/pages#show', id: 'about' 

Und ich mag es in meiner ability.rb Datei öffentlich machen, aber keiner dieser beiden Linien tun:

can :read, :pages 
can :read, 'high_voltage/pages' 

Wie behebe ich das?

Antwort

2

Ist dieses Problem nicht auf die Tatsache zurückzuführen, dass es kein Modell "Seite" gibt? Es gibt cancan wiki, wie man mit dieser Situation umgehen: es sollte funktionieren, wenn Sie

authorize_resource :class => false 

zu Ihrem Controller hinzuzufügen.

-2

Wenn es statische Seiten im herkömmlichen Sinn ist, dann wird das nicht funktionieren. Statische Seiten umgehen den Rails-Stack vollständig und werden direkt aus dem Dateisystem bedient. Was ich empfehlen würde, diese als statische Seiten zwischenzuspeichern, aber einen Controller zu haben, der die Erlaubnis prüft und dann die statische Seite bedient.

+0

Sicher meint er nur eine Seite, die keine Ressource ist, sondern immer noch im Stapel? –