当资源深度嵌套时,我无法定义能力。我有这些课程:教师、师、学生、缺席和用户(教师和学生属于设计用户模型):
#Teacher
has_many :divisions
#Division
belongs_to :teacher
#Student
belongs_to :division
has_many :absences
#Absence
belongs_to :student
当我想确保老师只能管理属于他的部门的学生时没有问题:
#This works
if user.teacher?
can :manage, Student, division: { teacher_id: user.teacher.id }
end
当我想确保教师可以管理其部门中属于学生的缺勤时会出现问题:
#This doesn't work and returns PG::Error: ERROR: column students.divisions does not exist
can :manage, Absence, student: { division: { teacher_id: user.teacher.id } }
对定义这种嵌套资源的能力有什么建议吗?