49 votes

L'accès CanCan s `peut?` méthode à partir d'un modèle

Vous pouvez obtenir de l' current_users'autorisations à partir d'une vue ou un contrôleur à l'aide d' can? dans ce mode:

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

Comment puis-je accéder à cette fonctionnalité à partir d'un modèle à l'aide de cette syntaxe:

user.can?(:update, @article)

74voto

jigfox Points 11788

Il y a une entrée wiki sur github pour cela: http://wiki.github.com/ryanb/cancan/ability-for-other-users

Vous avez besoin de changer votre modèle d'Utilisateur comme ceci:

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

Ensuite, vous pouvez vérifier les capacités comme ceci:

user.can?(:update,@article)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X