Estoy cambiando algunas de mis acciones personalizadas de CanCan en la clase Ability para usar bloques en lugar de solo un hash, pero ahora han dejado de restringir el acceso. Lo curioso es que las acciones integradas como: manage y: create, etc. parecen funcionar bien con los bloques.Las acciones personalizadas de CanCan no funcionan con los bloques
Este es un ejemplo:
VIEJO
# this one works
can :share, Project, :user_id => user.id
NUEVO
# this one doesn't work
can :share, Project do |project|
project.users.exists?(user)
end
Cualquier persona con este problema antes?
Créanme, no quiero usar los bloques pero parece ser la única manera de hacerlo en mi caso. Pasé de una relación uno a muchos entre proyectos y usuarios a muchos, por lo que ahora debo verificar a todos los usuarios en un proyecto, no solo uno. – Matt
Hmm, intente utilizar el depurador y vea qué sucede en CanCan cuando compruebe la capacidad. O abra y edite los archivos de cancan gem en su sistema de archivos y vea qué pasa por las variables de dumping. Así es como me mantengo en el camino cuando no puedo pensar en otra cosa. Por supuesto revertir los archivos;) – Mirko