Es fiel mir schwer, weil ich in Rails keine Funktion zum Bearbeiten von Benutzerinformationen erstellen konnte. Ich werde es teilen, weil die Ursache geklärt wurde.
Rails 6.0.3.3 devise 4.7.3
--Daten werden nicht gesendet, wenn Sie die Senden-Taste drücken
<%= form_for(resource, as: resource_name, url: registration_path(resource_name), html: { method: :put }) do |f| %>
Richtig, es wird mit "form_for" wie oben beschrieben beschrieben, aber wenn die Anzeige der Ansicht auf ein beliebiges Formular eingestellt wurde, wurde es fälschlicherweise mit "form_with" in das Formular geändert. Daher wurde die Aktualisierung nicht in der standardmäßig in devise registrierten Form durchgeführt, und die Aktualisierung konnte nicht durchgeführt werden.
<%= f.label "nickname"%>
<%= f.text_field :nickname, autofocus: true%>
Zusätzlich wurde das Formular im obigen Formular zum Hinzufügen der Spitznamenspalte beschrieben. Sie können es eingeben, es wird jedoch nicht aktualisiert.
devise_for :users, controllers: {
registrations: 'users/registrations'
Die obige Beschreibung wurde hinzugefügt
Gehen Sie im Terminal wie folgt vor
% rails g devise:controllers users
Running via Spring preloader in process 39712
create app/controllers/users/confirmations_controller.rb
create app/controllers/users/passwords_controller.rb
create app/controllers/users/registrations_controller.rb
create app/controllers/users/sessions_controller.rb
create app/controllers/users/unlocks_controller.rb
create app/controllers/users/omniauth_callbacks_controller.rb
Fügen Sie danach Folgendes in controller / users / registrations_controller.rb
hinzu
(Da es bereits beschrieben wurde, können Sie es einfach auskommentieren.)
before_action :configure_account_update_params, only: [:update]
protected
def configure_account_update_params
devise_parameter_sanitizer.permit(:account_update, keys: [:nickname])
end
Setzen Sie eine beliebige Spalte in keys: [: nickname]
.
https://qiita.com/akasakas/items/138c29fa2cecd271cfe4 https://remonote.jp/rails-devise-profile-edit