2010-09-23 13 views

Respuesta

9

que he conseguido obtener CanCan y Mongoid (versión 2) trabajen juntos bastante bien en una aplicación de rails 3 Sigue recibiendo algunos errores aquí y allá relacionados con las condiciones en la definición de permiso (el modelo de Habilidad).

acabo de cargar el contenido de este GIST en un archivo en config/inicializadores:

Los valores hash de condiciones son casi los mismos que con ActiveRecord:

# can only manage own account 
can :manage, User, :_id => current_user.id 

Todavía estoy trabajando en cómo usar condiciones Mongoid :: Criteria más avanzadas, pero siempre puede usar un bloque para realizar condiciones más complejas:

# can only manage own account 
can :eat, Cake do 
    current_user.jobs.any?{ |job| job.title == 'Peasant'} 
end 
+0

Gracias. Espero que las extensiones se agregarán a la versión futura de gem –

+0

. De nada. Mongoid es increíble y también lo es CanCan. Trataré de armar un parche de trabajo para CanCan para que este comportamiento se incluya en la biblioteca sin necesidad de agregar nada. Por cierto, realicé algunas actualizaciones significativas al principio que permiten hashes de condiciones complejas. Recomiendo usar la última versión esencial, porque la versión anterior había causado algunos errores difíciles de detectar pero importantes. – bowsersenior

+1

Mis extensiones llegaron a Cancan. La última versión en github ahora es compatible con Mongoid: https://github.com/ryanb/cancan/pull/172 y la versión 1.5 de rubygems también contará con el soporte de Mongoid. – bowsersenior

Cuestiones relacionadas