我使用Paperclip expiring_url
设置了一些文件。那些工作正常。
我尝试使用CanCan 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.rb
load_and_authorize_resource
仍有所有用户都可以下载电影。
expiring_url
不是Movie
的属性,我可以看到这就是为什么不起作用的原因。我不确定如何指定与此关联的paperclip expiring_url对象以使其工作。
知道怎么做吗?
答案 0 :(得分:2)
答案 1 :(得分:0)
我使用CanCan 1.6.x,但在2.0 docs的定义能力下,Ryan说
传入current_user,允许您根据用户属性定义权限。
所以如果你有一个current_user就不会像下面那样适合你吗?
if user
can :read, :movies, :expiring_url
else
can :read, :movies
end
您能否提供有关“expiring_url”的更多信息?我刚刚意识到上述内容可能对你不起作用,因为 expiring_url 听起来不像模特。