0

私の問題:私は3つのモデルを手に入れました:

ユーザー <-> 登録 <-> コース。

  1. ユーザーは多くのコースのメンバーになることができます
  2. コースには多くのメンバーがいます。

それは問題ありませんが、Enrollment.

たとえば、私は持っています:

  1. ユーザー:userA
  2. 2 つのコース :courseAおよびcourseB

userAは :

  • courseA役割を持つメンバーstudent
  • およびメンバーcourseBとしてtutor.

通常の学生ロールはコースのコンテンツのみを表示する必要があり、チューターには拡張権限が必要です (例: データの編集、データの追加など)。

私の検索結果は、1つの役割だけでユーザーをコースに割り当てることができるということだけです...

私の行動に到達する可能性はありますか?

4

1 に答える 1

0

roleが で定義されていると仮定するとEnrollment、次のように動作するはずです。

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

最初のルールは、ユーザーの と一致するCourseものをすべてキャッチし、ユーザーがそれを表示できるようにします。2 番目は、ユーザーのと一致するを持ち、 の を持つものをすべてキャッチします。(最初のルールで役割を指定することもできますが、この場合はおそらく不要です。)EnrollmentidCourseEnrollmentidrole"tutor""student"

:read私はこれをテストしていません。実際のパーミッションをand以外のものに変更したいかもしれませんが:manage、それで正しい軌道に乗るはずです。

于 2013-11-28T22:25:07.860 に答える