2010-07-20 12 views
44

Puede obtener permisos del current_user 's desde un punto de vista o controlador utilizando can? de esta manera:?acceso CanCan `puede` método de un modelo

<% if can? :update, @article %> 
    <%= link_to "Edit", edit_article_path(@article) %> 
    <% end %> 

¿Cómo puedo acceder a esta funcionalidad de un modelo que utiliza este sintaxis:

user.can?(:update, @article) 
+4

Buena pregunta. ¡Me alegra que también hayas recibido una buena respuesta! – Andrew

Respuesta

62

Hay una entrada de wiki en gitHub para esto: http://wiki.github.com/ryanb/cancan/ability-for-other-users

Usted necesita cambiar su modelo de usuario de la siguiente manera:

class User < ActiveRecord::Base 
    def ability 
    @ability ||= Ability.new(self) 
    end 
    delegate :can?, :cannot?, :to => :ability 
end 

continuación, podrá comprobar las capacidades de esta manera:

user.can?(:update,@article) 
Cuestiones relacionadas