当我这么做时到底发生了什么:
@patient.course_enrollments.accessible_by(current_ability)
似乎发生的事情是我在course.client_id = user.client.id
处获得course_enrollments,我只是不明白accessible_by
的工作原理。
# ability.rb
can :manage, CourseEnrollment, :course => {:client_id => user.client.id}
答案 0 :(得分:18)
accessible_by
为您提供的范围仅包含您在current_ability
时可以访问的记录。由于您声明:manage
上的CourseEnrollment
功能已被当前用户拥有的课程过滤,因此accessible_by
来电将添加相同的限制,以便返回的课程注册全部为“可由“当前用户访问。