2011-10-03 15 views
23

È possibile reindirizzare gli utenti a pagine diverse (in base al ruolo) dopo aver effettuato l'accesso con Devise? Sembra solo reindirizzare alla radice: to => ... pagina definita in routes.rbReindirizza dopo l'accesso con Devise

Grazie!

risposta

28

Per impostazione predefinita Devise fa rotta verso radice dopo che le proprie azioni. C'è un bel articolo su sovrascrivendo queste azioni sul Devise Wiki, https://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-in

Oppure si può andare ancora più lontano impostando stored_locations_for(resource) a zero, e quindi hanno diversi reindirizzamenti per ogni azione, vale a dire: after_sign_up_path(resource), after_sign_in_path(resource) e così via.

+0

Grazie, questo è quello che sto cercando . :-) – rsl

+0

Proprio avanti. Se guardi il Registrations Controller per Devise in sé puoi vedere tutti i diversi metodi in là, e puoi quindi sovrascriverli a piacimento. – janders223

+1

@ janders223 come è possibile accedere al controller di registrazione per inventare? – Joel

-3

Ecco quella che credo sia la risposta che state cercando dal wiki concepire:

How To: Change the default sign_in and sign_out routes

+1

La domanda chiede di reindirizzamento ** ** dopo l'accesso, mentre questo link discute cambiare i percorsi per l'accesso e fuori sé (vale a dire la creazione e la distruzione di una sessione) – dukedave

14

semplicemente è possibile aggiungere questo metodo per il controller dell'applicazione

def after_sign_in_path_for(resource) 
    user_path(current_user) #your path 
end 
2

incollare solo il codice qui sotto al controller dell'applicazione o qualsiasi controller, è necessario fare l'operazione;

def after_sign_in_path_for(resource) 
    users_path 
end 
Problemi correlati