ruby '2.6.5' rails '6.0.0 devise 4.7.2
edit_user_registration GET /users/edit(.:format) users/registrations#edit
J'ai pu confirmer qu'il s'agissait de edit_user_registration_path. Créez un chemin pour cela avec link_to.
Définissez before_action et configure_account_update_params. Cette fois, je vais mettre ma chronique.
before_action :configure_account_update_params, only: [:update]
def configure_account_update_params
devise_parameter_sanitizer.permit(:account_update, keys: [:nickname, :email, :password, :gender_id, :birth, :bloodtype_id, :emergencyperson, :emergencycall, :real_name, :real_name_kana, :phone_number])
end
Créez un fichier edit.html.erb dans users / registrations. J'utilise principalement une copie de new.html.erb, mais il y a quelques notes supplémentaires. J'utilise deux dispositifs pour que les répertoires soient différents, mais avec un seul, la vue crée edit.html.erb dans devise / registrations.
Modifiez également le chemin de form_with. Site de référence ici Dès la conclusion, il s'agit du paramètre par défaut de l'appareil, mais lors de la mise à jour du mot de passe, le mot de passe actuel est authentifié et mis à jour.
<%= form_with model: @user, url: user_registration_path, method: :patch, class: 'registration-main', local: true do |f| %>
<div class="field">
<%= f.label :current_password %>
<%= f.password_field :current_password, autocomplete: "current-password" %>
</div>
Ajoute ça. Lors de l'édition, il est nécessaire d'avoir un élément pour saisir le mot de passe existant.
En ajoutant cela, les éléments modifiés ont été enregistrés avec succès. Cependant, c'est essentiel même si vous ne changez pas le mot de passe, alors qu'est-ce que c'est? C'est comme ça. Je continuerai à rechercher et à apprendre.