1

我有一个任务对象。

任务属于用户或公司。

一个用户可以通过雇佣关系属于许多公司(如区域经理)。

有没有一种方法可以让我与 cancan 进行检查以查看任务是属于用户还是属于他们所属的公司之一?

IE

can :manage, Task, do |task|
   task.user_id == user.id || user.companies.each do |company|
     task.company_id == company.id
   end
end
4

1 回答 1

4

是的,你可以,如果我理解这一点,这样的事情应该可以工作:

can :manage, Task, do |task|
   task.user_id == user.id || user.company_ids.include?(task.company_id)
end

最好的!

于 2011-03-23T23:47:53.887 回答