2011-03-17 16 views
14

lo que está ocurriendo exactamente cuando lo haga:Cancan accessible_by

@patient.course_enrollments.accessible_by(current_ability) 

Lo que parece ocurrir es que consiguen course_enrollments donde course.client_id = user.client.id, simplemente no entienden cómo accessible_by obras.

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

Respuesta

18

accessible_by le da un alcance que incluye sólo aquellos registros que sería capaz de acceso dado el current_ability. Dado que indicó que la capacidad :manage en CourseEnrollment está filtrada por los cursos propiedad del usuario actual, la llamada accessible_by agregará la misma restricción para que todas las inscripciones del curso sean "accesibles por" el usuario actual.

Cuestiones relacionadas