2011-03-23 91 views
1

我有一個Task對象。CanCan複合能力定義

任務屬於用戶或公司。

用戶可以通過職位屬於許多公司(如區域經理)。

有沒有辦法讓我可以用康康來檢查一下任務是屬於用戶還是屬於他們的公司之一?

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

在Tas後「,」是額外的並且會造成語法錯誤。 – 2015-05-29 11:31:32

回答

4

是的,你可以,如果我理解這一點很好,這樣的事情應該工作:

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

最好的!