2012-03-21 16 views

Respuesta

23

el problema estaba en una cadena en config/inicializadores/devise.rb:

  • defecto:

    # Configurar el comportamiento sign_out.
    # La acción Sign_out puede tener un alcance (es decir,/users/sign_out solo afecta: el alcance del usuario).
    # El valor predeterminado es verdadero, lo que significa que cualquier acción de cierre de sesión cerrará la sesión de todos los ámbitos activos.
    # config.sign_out_all_scopes = cierto

  • necesita:

    config.sign_out_all_scopes = falsa

+4

Mientras el OP está satisfecho con la respuesta aceptada, la respuesta técnica a la pregunta original es esta. –

+0

Sí, tienes razón. –

+0

¿Debería aceptar esto como una solución, o esto no es posible? –

0

El alcance de Devise es la aplicación completa: inicia sesión en el sitio, no en un modelo. Tal vez desee agregar la distinción de roles - un usuario puede tener uno o más roles que le permitan ciertos privilegios. Devise solo te convierte en un usuario autenticado. Considere una gema como CanCan que proporciona soporte para "autorizaciones basadas en roles".

+0

Gracias por su respuesta. Realmente me dijiste cosas más claras sobre el alcance de Devise. Inicialmente, quería utilizar dos modelos separados: [Creando un modelo de administrador] (https://github.com/plataformatec/devise/wiki/How-To:-Add-an-Admin-role), pero ahora entiendo que no fue la mejor opción No obstante, ¿tengo alguna posibilidad de mantenerme en mi camino o será mejor usar roles solo con el modelo de usuario? –

+0

Ambos: autenticación (Devise) y autorización (CanCan u otro enfoque de rol) son diferentes. –

+0

El diseño se puede determinar por modelo: https://github.com/plataformatec/devise#configuring-multiple-models (Esto puede no haber sido así en el momento en que se respondió por primera vez a esta pregunta) –

Cuestiones relacionadas