2010-07-20 8 views
44

Bạn có thể nhận được quyền truy cập của 's current_user từ một cái nhìn hoặc bộ điều khiển sử dụng can? theo cách này:Tiếp cận Cancan của 'có thể' phương pháp từ một mô hình

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

Làm thế nào tôi có thể truy cập chức năng này từ một mô hình sử dụng này cú pháp:

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

Tốt câu hỏi. Vui vì bạn cũng có một câu trả lời tốt về nó! – Andrew

Trả lời

62

có một mục wiki tại github cho việc này: http://wiki.github.com/ryanb/cancan/ability-for-other-users

bạn cần phải thay đổi mô hình tài khoản của bạn như thế này:

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

Sau đó, bạn có thể kiểm tra khả năng như thế này:

user.can?(:update,@article)