0

我的问题:我有三个模型:

用户 <-> 注册 <-> 课程。

  1. 一个用户可以是许多课程的成员
  2. 一个课程有很多成员。

没问题,但现在我想拥有基于Enrollment.

例如我有:

  1. 一个用户:userA
  2. 两门课程:courseAcourseB

userA是 :

  • courseA有角色的成员student
  • 和成员courseB一样tutor

一个普通的学生角色应该只看到课程的内容,导师应该有扩展权限(例如,编辑数据,添加数据......)

我的搜索结果只是我可以将用户分配给只有一个角色的课程......

有没有可能达到我的行为?

4

1 回答 1

0

假设role是在 an 上定义的Enrollment,以下应该有效:

can :read, Course, enrollment: { user_id: user.id }
can :manage, Course, enrollment: { user_id: user.id, role: "tutor" }

第一条规则捕获与用户匹配的任何Course内容,允许用户查看它。第二个捕获任何与用户匹配的, 和 a of 。(您也可以在第一条规则中指定角色,但在这种情况下这可能是不必要的。)EnrollmentidCourseEnrollmentidrole"tutor""student"

我没有对此进行测试,您可能希望将实际权限更改为 and 以外的其他:read内容:manage,但这应该会让您走上正轨。

于 2013-11-28T22:25:07.860 回答