CanCan 复杂能力定义

发布于 2024-10-25 05:19:22 字数 296 浏览 4 评论 0原文

我有一个任务对象。

任务属于用户或公司。

用户可以通过就业机会属于许多公司(例如区域经理)。

有没有一种方法可以让我使用 cancan 检查任务是否属于用户或他们所属的公司之一?

IE

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

I have a Task object.

Tasks belong to a user OR a company.

A user can belong to many companies through employmentships (like a regional manager).

Is there a way that I can do a check with cancan to see if a task either belongs to the user or one of the companies they belong to?

i.e.

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

下壹個目標 2024-11-01 05:19:22

是的,你可以,如果我理解得很好,这样的事情应该有效:

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

最好!

Yes you can, If I understood this well, something like this should work:

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

Best!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文