从模型中访问CanCan的`can?`方法

你可以使用can?从视图或控制器中获取current_user的权限can? 以这种方式:

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

如何使用此语法从模型中访问此function:

 user.can?(:update, @article) 

在github上有一个wiki条目: http ://wiki.github.com/ryanb/cancan/ability-for-other-users

你需要像这样改变你的用户模型:

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

那么你可以检查这样的能力:

 user.can?(:update,@article)