Cancan access_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} 

accessible_by为您提供了一个范围,该范围仅包含您在给定current_ability能够访问的记录。 由于您声明:manage CourseEnrollment上的:manage能力是由当前用户拥有的课程过滤的,因此accessible_by调用将添加相同的限制,以便返回的课程注册将全部由当前用户“访问”。