Cancan access_by

时间:2011-03-17 19:36:24

标签: ruby-on-rails scope cancan

当我这么做时到底发生了什么:

@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}

1 个答案:

答案 0 :(得分:18)

accessible_by为您提供的范围仅包含您在current_ability时可以访问的记录。由于您声明:manage上的CourseEnrollment功能已被当前用户拥有的课程过滤,因此accessible_by来电将添加相同的限制,以便返回的课程注册全部为“可由“当前用户访问。