У меня проблема с определением abilites, когда ресурсы глубоко вложены. У меня есть эти классы: Учитель, деление, студент, отсутствие и пользователь (Учитель и ученик принадлежат Разрабатывают модели пользователя):CanCan, определяющий abilites с глубоко вложенными ресурсами
#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
Проблема occurrs, когда я хочу, чтобы гарантировать, что Учитель может управлять Отсутствия, что принадлежит студентам из его подразделений:
#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 } }
Любой sugge стили для определения способности для этих вложенных ресурсов?
Я надеялся, что я мог бы решить эту проблему без использования блоков. Наверное, нет. – h00s