È necessario un controller utente solo se si desidera gestire gli utenti separatamente dal normale processo di registrazione/aggiornamento. Ho un controller per gli utenti in modo che gli amministratori possano gestire (creare, modificare, aggiornare, eliminare) gli utenti indipendentemente dal normale processo di registrazione/aggiornamento.
Il conflitto con l'escogitazione è probabilmente dovuto al fatto che nel file di rotte si dispone di devise_for :users …
per configurare il dispositivo e che è disponibile anche il resources :users
per il proprio UsersController. Ciò significa che Idea e il tuo UsersController tenteranno di condividere alcuni degli stessi percorsi /users
. È necessario separarli modificando il percorso a cui viene mappato uno di essi. È possibile aggiungere, ad esempio, :path => 'u'
all'istruzione devise_for
in modo che le route di devise siano mappate su /u
e non siano in conflitto con il proprio UsersController su /users
. In alternativa, è possibile lasciare da solo il devise_for
(quindi utilizzando ancora /users
) e modificare il routing di UsersController, ad esempio, resources :users_admin, :controller => 'users'
che sposta i percorsi di UsersControllers da mappare a /users_admin
. Si noti che questo cambierebbe gli helper del percorso, ad esempio da users_path
a users_admin_path
.
UPDATE
In seguito alla vostra commento/modifica, ho avuto un rapido sguardo al tutorial e penso che concepire fondamentalmente si dà la funzionalità equivalente delle funzionalità relative all'utente che è stato sviluppato dalla sezione 5.4 a circa le sezioni 9.1 o 9.2. (più alcune cose extra, ad esempio, conferma e-mail, reimpostazione della password, blocco dell'account, ecc.). Tuttavia, ciò non significa che si tratti di una sostituzione drop-in per quella funzionalità, se si desidera provare a unire Devise con quel tutorial. Ci sono alcune cose che sembrano funzionare (ad es. Devise definisce anche un metodo current_user
), ma le rotte, ecc. Sarebbero diverse, e escogitare suddividono le cose in più controller (controllori separati per la registrazione, accesso/uscita, reimpostazione della password ...). La funzionalità di tipo admin (come nelle sezioni 2.2, 9.3, 9.4 - crea/modifica/cancella/elenca gli utenti altri) è quello che ho aggiunto un UserController separato nella mia app. Devise non definisce un UsersController, ma usa gli instradamenti users
se si esegue devise_for :users
senza un percorso come detto sopra.
Quindi, più precisamente:
- si avrebbe solo bisogno di un UsersController se si desidera attivare la funzionalità admin-tipo che permette la visualizzazione/modifica/eliminazione di tutti gli utenti.
- Se si desidera utilizzare devise nel tutorial, sarà probabilmente necessario un po 'di lavoro per massaggiare le cose per adattarsi, cambiare i link di aiuto sulle pagine ecc. Scusa se non sono più specifico; Non ho fatto questo tutorial.
Si perderebbe l'ulteriore comprensione che deriva dal fare tutto manualmente da soli, ma ideare è un motore popolare, quindi è bene sapere anche. Se hai tempo, puoi fare il tutorial interamente, e poi di nuovo con idea! Ti aiuterebbe a capire che parte del genere di cose che escogitano sta facendo dietro le quinte. P.S: Può essere istruttivo guardare il codice sorgente del dispositivo, anche se non lo capisci immediatamente.
Se si desidera eseguire alcune personalizzazioni, è necessario creare il "controllore utenti". Perché è all'altezza delle tue esigenze? Per prima cosa dovresti sapere perché creiamo un nuovo controller? –
http://stackoverflow.com/questions/21904701/ruby-on-rails-4-what-authentication-gem-to-use/21907080#21907080 –
Mi sono imbattuto in questa mia vecchia domanda e ho pensato di collegarmi a un post sul blog che mi ha aiutato a capire meglio alcune cose. Qui http://www.korenlc.com/rails-tutorial-authentication-with-devise/ – imarg