Ruby CanCan 多学科能力 (类)?
Ruby CanCan ability with multiple subjects (classes)?
如何拥有多个科目的康康能力?
我想将能力定义为:
can :change_role, Project, Document do |prj, doc|
# my logic here
..
end
所以我这样检查:
prj1 = Project.find(10)
doc1 = Document.find(...)
user.can? :change_role, prj1, doc1
而且它不起作用。
但 Cancan 只允许这样:
can :read, Project do |prj|
..
end
user.can? :read, prj1
我是否应该创建我的代理 class 来存储两个主题并将其传递给能力?
如何添加多个classes/subjects能力?
这样做:
user.can? :change_role, [prj1, doc1]
定义能力:
can :change_role, Array do |p|
prj = p[0]
doc = p[1]
...
end
如何拥有多个科目的康康能力?
我想将能力定义为:
can :change_role, Project, Document do |prj, doc|
# my logic here
..
end
所以我这样检查:
prj1 = Project.find(10)
doc1 = Document.find(...)
user.can? :change_role, prj1, doc1
而且它不起作用。
但 Cancan 只允许这样:
can :read, Project do |prj|
..
end
user.can? :read, prj1
我是否应该创建我的代理 class 来存储两个主题并将其传递给能力?
如何添加多个classes/subjects能力?
这样做:
user.can? :change_role, [prj1, doc1]
定义能力:
can :change_role, Array do |p|
prj = p[0]
doc = p[1]
...
end