Cancan access_by

Chr*_*nch 14 scope ruby-on-rails cancan

我这样做到底发生了什么:

@patient.course_enrollments.accessible_by(current_ability)
Run Code Online (Sandbox Code Playgroud)

似乎发生的事情是我得到course_enrollments course.client_id = user.client.id,我只是不明白它是如何accessible_by工作的.

# ability.rb
can :manage, CourseEnrollment, :course => {:client_id => user.client.id}
Run Code Online (Sandbox Code Playgroud)

jdl*_*jdl 18

accessible_by为您提供一个范围,其中仅包含您能够访问的记录current_ability.由于您声明该:manage功能CourseEnrollment是由当前用户拥有的课程过滤的,因此该accessible_by呼叫将添加相同的限制,以便返回的课程注册将全部由当前用户"访问".