Канкан доступный_by

Что именно происходит, когда я делаю:

@patient.course_enrollments.accessible_by(current_ability)

Кажется, что я получаю Course_enrollments, где course.client_id = user.client.id, я просто не понимаю, как работает accessible_by.

# ability.rb
can :manage, CourseEnrollment, :course => {:client_id => user.client.id}

Ответы

Ответ 1

accessible_by предоставляет вам область действия, которая включает только те записи, которые вы могли бы получить с помощью current_ability. Поскольку вы заявили, что способность :manage на CourseEnrollment отфильтровывается курсами, принадлежащими текущему пользователю, вызов accessible_by будет добавлять в то же ограничение, чтобы возвращаемые заявки на курс были "доступны" текущим пользователем.