2012-10-22 33 views
0

我使用Paperclip expiring_url設置了一些文件。那些工作正常。CanCan 2.0 + Paperclip expiring_url

我嘗試使用慘慘2.0允許expiring_url只簽署成員使用下面的代碼

# /app/models/ability.rb 
class Ability 
    include CanCan::Ability 

    def initialize(user) 
    user ||= User.new # guest user 
    can :read, :movies 
    cannot :read, :movies, :expiring_url 

    if user.persisted? 
     can :read, :movies, :expiring_url 
    end 

    end 
end 

MoviesController.rbload_and_authorize_resource還是所有用戶都能夠下載電影。

expiring_url不是Movie的屬性,我可以看到這就是爲什麼不工作的原因。我不確定如何指定與此相關聯的回形針expiring_url對象以使其工作。

任何想法如何做到這一點?

回答

1

慘慘顯然需要的條件是實際的數據庫列,按上this頁的聲明:

它只能使用數據庫列這些條件

這不是很重要在回形針的限制,它是cancan(我喜歡相當多,不要誤會我)。

0

我用慘慘1.6.x版,但在定義能力2.0 docs,瑞恩說

的CURRENT_USER傳入允許你根據用戶屬性定義權限。

所以如果你有一個current_user不會像下面的東西爲你工作?

if user 
    can :read, :movies, :expiring_url 
else 
    can :read, :movies 
end 

你能提供什麼 「expiring_url」 爲更多信息?我剛剛意識到上述可能不會爲你工作,因爲expiring_url聽起來不像一個模型。