2016-06-27 6 views
0

Ich implementiere CanCanCan zum ersten Mal.Warum kann der Benutzer Beiträge erstellen, wenn `in der Ability-Klasse (CanCanCan) nicht verwaltet werden kann?

Aber ich bin verwirrt, warum Benutzer immer noch Beiträge erstellen können, wenn ich cannot :manage, Post in der Ability Klasse eingerichtet habe.

class Ability 
    include CanCan::Ability 

    def initialize(user) 
    user ||= User.new # if a non-signedin visitor 
    cannot :manage, Post 
    end 
end 

Mein Verständnis ist, dass :manage auf alle Aktionen gelten, so sollte der Benutzer nicht in der Lage sein, etwas mit der post Ressource zu tun.

Kann jemand beraten?

+2

wie Sieht gerade 'load_and_authorize_resource' hinzuzufügen benötigt, um' posts_controller.rb'. Dann funktioniert wie erwartet. –

Antwort

0

Haben Sie das um den Index herum hinzugefügt, Seiten angezeigt und bearbeitet CRUD-Links in Ihrer App? das wird den Link alle zusammen entfernen .. Bin noch neu mit cancancan aber auch mit den load_and_authorize_resources musste ich noch den if hinzufügen? um meine Links und das hat mein Problem gelöst.

<% if can? :manage, Post %> 
    <% link_to "something" some_path %> 
<% end %> 

hoffe, das hilft

Verwandte Themen