2

我有CourseClass很多AttendanceSheets 和has_many Teachers 的模型。我希望 course_class 实例的教师能够管理该 course_class 的考勤表。

我希望以下内容可以设置:

if user.has_role? :teacher
  can [:manage], AttendanceSheet, course_class: { teachers: {id: user.id } }
end

用户具有全局角色,但也可以在 CourseClass 上具有每个实例的角色。理论上,上面应该检查他们是否具有全局角色,然后teachers关联会在该 CourseClass 上仅找到具有实例角色的教师。

在控制器中,@attendance_sheets 设置为:

@attendance_sheets = @course_class.attendance_sheets.all

当我运行能力检查时,我得到以下结果:

[1] pry(#<#<Class:0x007fb011970ea0>>)> can? :read, @attendance_sheets
=> false
[2] pry(#<#<Class:0x007fb011970ea0>>)> can? :read, AttendanceSheet
=> true
[3] pry(#<#<Class:0x007fb011970ea0>>)> can? :read, @course_class.attendance_sheets
=> false
[4] pry(#<#<Class:0x007fb011970ea0>>)> can? :manage, AttendanceSheet
=> true

我期望/想要read/manage继续或继续。AttendanceSheetfalse:read@attendance_sheets@course_class.attendance_sheetstrue

感谢您提前提供任何帮助。

4

0 回答 0