[RUBY] [Schienen] Spalte zum Entwickeln hinzufügen

Warum ich geschrieben habe

Wenn Sie eine Benutzerauthentifizierung mit devise erstellen, haben Sie von Anfang an eine E-Mail-Adresse und ein Kennwort, benötigen jedoch einen Namen, um sich als Benutzer zu registrieren. Ich denke immer, also mach dir eine Notiz.

Annahme

Fügen Sie eine Spalte hinzu

Wenn Sie einer Datenbank eine Spalte hinzufügen, schreiben Sie diese normalerweise wie folgt. Geben Sie der Migrationsdatei zunächst einen Namen, der angibt, was die Migrationsdatei tut.

Wenn Sie beim Benennen "AddColumnToUsers" schreiben und dies so etwas wie "Hinzufügen einer Spalte zur Benutzertabelle" bedeutet, seien Sie vorsichtig, da der Name beim Hinzufügen der nächsten Spalte ein Problem darstellt. Erstens denke ich, dass es notwendig ist, Spalten = DB-Design hinzuzufügen, aber ich bin in diesem Bereich noch unerfahren. Sagen Sie mir bitte, wer stark ist.

$Schienen generieren Migration Spaltenname zum Tabellennamen hinzufügen Spalte, die hinzugefügt werden soll:Datentyp
$ rails generate migration AddNameToUsers name:string

XXXXXXXXXXX_add_name_to_users.rb


class AddNameToUsers < ActiveRecord::Migration[5.2]
  def change
    add_column :users, :name, :string
  end
end
$ rails db:migrate

Fix Controller und View

erb:registrations/new.html.erb


<h2>Sign up</h2>

<%= form_for(resource, as: resource_name, url: registration_path(resource_name)) do |f| %>
  <%= render "devise/shared/error_messages", resource: resource %>

	#Von hier aus hinzufügen
 <div class="field">
    <%= f.label :name %><br />
    <%= f.text_field :name, autofocus: true %>
  </div>
	#Bisher

  <div class="field">
    <%= f.label :email %><br />
    <%= f.email_field :email, autofocus: true, autocomplete: "email" %>
  </div>

  <div class="field">
    <%= f.label :password %>
    <% if @minimum_password_length %>
    <em>(<%= @minimum_password_length %> characters minimum)</em>
    <% end %><br />
    <%= f.password_field :password, autocomplete: "new-password" %>
  </div>

  <div class="field">
    <%= f.label :password_confirmation %><br />
    <%= f.password_field :password_confirmation, autocomplete: "new-password" %>
  </div>

  <div class="actions">
    <%= f.submit "Sign up" %>
  </div>
<% end %>

<%= render "devise/shared/links" %>

Ich möchte in der Lage sein, die Informationen des Namens zu erhalten, der von View geflogen ist, also Fügen Sie application_controller.rb Folgendes hinzu.

application_controller.rb


class ApplicationController < ActionController::Base
  before_action :configure_permitted_parameters, if: :devise_controller?

  protected
  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up, keys: [:name])
  end
end

Schreiben Sie den folgenden Code in application.html.erb. current_user ist eine der von devise bereitgestellten Methoden, und Sie können die Informationen des angemeldeten Benutzers abrufen.

erb:application.html.erb


<% if current_user.present? %>
  <p>Hallo,<%= current_user.name %>San!</p>
<% else %>
  <p>Hallo Gast!</p>
<% end %>

Wenn es gut angezeigt wird, ist es OK!

スクリーンショット 2020-07-22 17.47.14.png

Recommended Posts

[Schienen] Spalte zum Entwickeln hinzufügen
[Schienen] Fügen Sie starke Parameter hinzu, um sie zu entwickeln
[Schienen] erfinden
[Rails] Wie man Edelstein "devise" benutzt
[Schienen] Verwendung von Geräten (Hinweis)
[Rails] Verarbeitung nach Hinzufügen einer Spalte zur Entwicklertabelle
Zugabe von bind.pry (Schienen)
Migrationsdatei zum Hinzufügen eines Kommentars zur Rails-Tabelle
Fügen Sie der Spalte mit der Migration einen externen Schlüssel hinzu
[Rails] Einführung in das Gerät
[Rails] Fügen Sie einen Bestätigungsbildschirm und einen Abschlussbildschirm hinzu, um die Registrierung der Mitgliedschaft zu erstellen.
[Rails] [Hinweis] Wann = zu <%%> hinzugefügt werden soll und wann nicht
Ich möchte Geräte in Rails hinzufügen, kann die Installation jedoch nicht bündeln
[Hinweis] Verwendung von Rails 6 Devise + Cancancan
[Rails] Wie man Geräte ins Japanische übersetzt
[Schienen] So erstellen Sie eine Tabelle, fügen eine Spalte hinzu und ändern den Spaltentyp
Der Weg zur Japanisierung von Rails führt zu Fehlermeldungen
Tag-Funktion zu Rails hinzufügen. Verwenden Sie Acts-as-Taggable-On
So fügen Sie die html.erb-Klasse in Rails bedingt hinzu
[Schienen] In Gerät hinzugefügt: Benutzername nicht zur Datenbank hinzugefügt
Datei zur JAR-Datei hinzufügen
Wie schreibe ich Rails
[Rails] entwickelt eine Hilfsmethode
[Rails] Passen Sie die Validierung des Geräts an
Bootstrap in Rails einführen !!
Einführung von Vue.js in Rails
Gerät mit Schienen handhaben
So deinstallieren Sie Rails
[Rails] entwickeln eine Einführungsmethode
[Schienen] Standardwerte festlegen
[Rails] So verwenden Sie die Hilfsmethode von devise before_action: authenticate_user!
Führen Sie devise with Rails ein, um Benutzerverwaltungsfunktionen zu implementieren
[Ruby on Rails] So ändern Sie den Spaltennamen
[Ruby on Rails] Ändern Sie die URL-ID in den Spaltennamen
[Rails] So ändern Sie den Spaltennamen der Tabelle
[Rails] Bearbeiten und Anpassen von Geräteansichten und Controllern
[Rails] Fügen Sie Tags, die sich auf has_many beziehen, zu Devise User hinzu (Hinzufügen einer Funktion zum Folgen von Tags)
[Schienen] Wie poste ich Bilder?
[Rails] Einführung in die Grundlagen der Entwicklung
Was ist Rails Gem Devise?
Fügen Sie dem Header-Link mit Rails fontawesome ein Symbol hinzu
So fügen Sie die ActionText-Funktion hinzu
[Rails] Flow bei der Installation von Gem Devise
[Rails] Verwendung von Enum
[Ruby on Rails] Fügen Sie eine Spalte mit externen Schlüsselbeschränkungen hinzu
Ich war süchtig danach, default_url_options mit der Einführung von Rails zu setzen
4 Fügen Sie dem Interpreter println hinzu
Verwendung von Rails Join
(Für Anfänger) [Rails] Installieren Sie das Gerät
So beenden Sie den Rails-Server