[RUBY] Implementieren Sie eine Bearbeitungsseite

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.

Entwicklungsumgebung

Rails 6.0.3.3 devise 4.7.3

Problem

--Daten werden nicht gesendet, wenn Sie die Senden-Taste drücken

Ursache

Aussicht

<%= 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.

Routing

devise_for :users, controllers: {
 registrations: 'users/registrations'

Die obige Beschreibung wurde hinzugefügt

Regler

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].

Referenz

https://qiita.com/akasakas/items/138c29fa2cecd271cfe4 https://remonote.jp/rails-devise-profile-edit

Recommended Posts

Implementieren Sie eine Bearbeitungsseite
[Rails] [Devise] Profil bearbeiten, ohne Passwort einzugeben
Erstellen Sie meine Seite mit Rails
[Schienen] Änderungen der von devise erstellten Ansichtsseite werden nicht berücksichtigt