【发布时间】:2012-02-17 10:52:05
【问题描述】:
构建一个拥有不同用户的 rails B2B 应用程序。我很清楚使用 Devise 和 CanCan 限制内部员工的访问,但我也希望能够为供应商和客户提供自己的登录名。客户将相当简单,但是,我想确保供应商(标签)登录使他们能够查看和修改自己的产品和销售数据。
模型大致是:
User (as setup by Devise)
Label [has_many releases]
Release [belongs_to label / has_many products]
Product [belongs_release / has_many tracks]
Track [belongs_product]
我猜我可以在用户模型上添加 label_id 字段并以这种方式关联,但我需要内部用户(和客户)有权查看所有标签数据。我还需要允许一个标签有很多用户。
这仅仅是通过 Cancan 定义一个“标签”角色的情况,该角色强制在视图中使用 label_id 吗?如果这是正确的方法,那么我该如何将内容锁定到我的控制器/视图中的 label_id ?基于角色的 if 语句?
提前致谢!
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 authentication devise cancan