Lorsque j'ai introduit le dispositif dans Rails5, j'ai eu un problème en raison du fait que l'écran de changement de mot de passe généré par le dispositif ne pouvait pas être affiché correctement, je le laisserai donc sous forme de mémorandum.
Environnement d'utilisation
ruby 2.5.7
rails 5.2.4
Après avoir installé l'appareil, si vous vérifiez le routage à l'aide de la commande "rails routes" sur la console, il sera affiché sous la forme suivante.
$ rails routes
Prefix Verb URI Pattern Controller#Action
new_user_session GET /users/sign_in(.:format) devise/sessions#new
user_session POST /users/sign_in(.:format) devise/sessions#create
destroy_user_session DELETE /users/sign_out(.:format) devise/sessions#destroy
new_user_password GET /users/password/new(.:format) devise/passwords#new
edit_user_password GET /users/password/edit(.:format) devise/passwords#edit
user_password PATCH /users/password(.:format) devise/passwords#update
PUT /users/password(.:format) devise/passwords#update
POST /users/password(.:format) devise/passwords#create
cancel_user_registration GET /users/cancel(.:format) devise/registrations#cancel
new_user_registration GET /users/sign_up(.:format) devise/registrations#new
edit_user_registration GET /users/edit(.:format) devise/registrations#edit
user_registration PATCH /users(.:format) devise/registrations#update
PUT /users(.:format) devise/registrations#update
DELETE /users(.:format) devise/registrations#destroy
POST /users(.:format) devise/registrations#create
À ce stade, le routage pour afficher l'écran de changement de mot de passe est
edit_user_password GET /users/password/edit(.:format)
Cela peut sembler (je l'ai fait), mais il existe en fait un autre routage pour l'écran de changement. C'est
edit_user_registration GET /users/edit(.:format)
est. La différence entre les deux est
edit_user_password GET /users/password/edit(.:format) #Écran de changement de mot de passe avant la connexion
edit_user_registration GET /users/edit(.:format) #Écran de changement de mot de passe après la connexion
... Apparemment ...
Utilisons chacun correctement, par exemple en spécifiant le chemin dans "link_to" (bien que je pense que seul celui après la connexion est essentiellement utilisé).