2010-07-30 19 views
12

在慘慘的文檔,它顯示瞭如何以這種方式獲取所有訪問記錄(在http://wiki.github.com/ryanb/cancan/fetching-records):cancan的accessible_by(獲取記錄)中的current_ability是什麼?

@articles = Article.accessible_by(current_ability) 

,但什麼是current_ability?我已經試過路過我使用的身份驗證和授權當前用戶,但我得到這個錯誤:

NoMethodError: undefined method `conditions' for #<User:0x1092a3b90> 

任何想法,我應該怎麼傳遞給accessible_by或出了什麼問題嗎?

回答

10

CanCan將ActionController::Basecurrent_ability方法(等等)一起使用,這是您的ApplicationController應從中繼承的類。因此,您問題中的示例代碼應該按原樣運行。

+6

您還可以使用您定義的能力類的實例傳遞自己的能力。能力類是包含CanCan :: Ability的類,你可以像這樣使用它:Ability.new(current_user) – 2010-10-28 14:55:59

+1

我猜很多人都問自己這個問題。也許wiki文檔應該更新? – 2013-01-31 03:23:15