2010-07-20 89 views
44

您可以以這種方式使用can?視圖或控制器得到current_user的權限:?訪問慘慘的`從一個模型`方法

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

我如何使用這個模型訪問此功能語法:

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

好問題。很高興你也得到了一個很好的答案! – Andrew 2012-11-04 04:28:36

回答

62

有一個在github上維基條目是: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)