In erster Linie beginnt alles mit der Installation dieses Edelsteins.
Gerät installieren
% gem'devise'
% bundle install
% rails g devise:install
Damit ist die Installation abgeschlossen.
rails g devise user
Ein Benutzermodell und eine Migrationsdatei werden generiert.
Wenn dieser Befehl ausgeführt wird, wird das Routing automatisch in config / route.rb
festgelegt.
config/routes.rb
Rails.application.routes.draw do
devise_for :users
# For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
end
rails g devise:views
Wenn Sie diesen Befehl ausführen, wird im Handumdrehen automatisch eine Ansichtsdatei der erforderlichen Funktion generiert.
Dieses Mal werden die folgenden Informationen an die Tabelle auf dem neuen Registrierungsbildschirm gesendet.
ruby:db/migrate/025412010...
lass DeviseCreateUsers < ActiveRecord::Migration[6.0]
def change
create_table :users do |t|
## Database authenticatable
t.string :name, null: false
t.string :email, null: false, default: ""
t.string :encrypted_password, null: false, default: ""
t.string :last_name, null: false
t.string :first_name, null: false
t.string :kana_last, null: false
t.string :kana_first, null: false
t.date :birthday, null: false
... (Kürzung)
Nachdem wir die Informationen, die wir für die Tabelle erstellt haben, im Voraus beschrieben haben, können wir die Benutzertabelle migrieren und vervollständigen.
% rails db:migrate
Das in der Datei "app / views / devise / registrations / new.html.erb" beschriebene Formular sendet eine Anforderung an den Server und speichert sie in der Tabelle, überprüft und setzt jedoch Fehlermeldungen, um die Informationen korrekt zu speichern. ..
users.rb
users.rb
class User < ApplicationRecord
# Include default devise modules. Others available are:
# :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :validatable
validates :name, presence: true
validates :email, presence: true
#Variable GÜLTIG_PASSWORD_Ersetzen Sie die Option, 6 oder mehr alphanumerische Zeichen mit halber Breite in REGEX zu verwechseln
VALID_PASSWORD_REGEX = /\A(?=.*?[a-z])[a-z\d]{6,}+\z/
validates :password, presence: true, length: { minimum: 6 }, format: { with: VALID_PASSWORD_REGEX}
#Beschreiben Sie die Option, den Helfer in Hiragana, Katakana und Kanji in voller Breite eingeben zu lassen
validates :last_name, :first_name, presence: true, format: { with: /\A(?:\p{Hiragana}|\p{Katakana}|[--- ---.]|[einer-龠])+\z/ }
#Beschreiben Sie die Option zur Eingabe in Katakana in voller Breite
validates :kana_last, :kana_first, presence: true, format: { with: /\A[\p{katakana}--- ---.&&[^ -~¡-゜]]+\z/ }
validates :birthday, presence: true
end
Damit können die persönlichen Daten des Benutzers zum Zeitpunkt der Neuanmeldung im oben genannten Formular gespeichert werden.
application.controller.rb
ruby:application.controller.rb
class ApplicationController < ActionController::Base
protect_from_forgery with: :exception
before_action :configre_permitted_parameters, if: :devise_controller?
def configre_permitted_parameters
devise_parameter_sanitizer.permit(:sign_up, keys: [:name, :last_name, :first_name, :kana_last, :kana_first, :birthday])
end
end
In der Methode configure_permitted_parameters, die nur bei der Verarbeitung des mit devise verbundenen Controllers funktioniert, Schlüssel: Wenn der Wert danach nicht eingegeben wird, kann er so verarbeitet werden, dass er nicht gespeichert werden kann. ** * Übrigens kann devise standardmäßig E-Mail und Passwort empfangen! ** ** **
Zu diesem Zeitpunkt müssen Sie lediglich die Anmelde- / Abmeldefunktion implementieren.
・ Header-Datei bearbeiten
devise/shared/header
#user_signed_in?Stellen Sie so ein, dass sich die Anzeige ändert, je nachdem, ob Sie angemeldet sind oder nicht.
<% if user_signed_in? %>
<li><%= link_to "#{current_user.name}", class: "user-nickname" %></li>
<li><%= link_to 'Ausloggen', destroy_user_session_path , method: :delete, class: "logout"%> </li>
<% else %>
<li><%= link_to 'Einloggen', new_user_session_path, class: "login" %></li>
<li><%= link_to 'Anmelden', new_user_registration_path, class: "sign-up" %></li>
<% end %>
Sie können den Namen des angemeldeten Benutzers aus der DB-Spalte mit link_to " # {current_user.name} "
abrufen.
Jetzt können Sie sich anmelden und registrieren, indem Sie eine Verbindung zu localhost: 3000 / users / sign_in
oder users / sign_up
herstellen.
Natürlich handelt es sich hierbei um Dateibearbeitungen im Zusammenhang mit devie. Bereiten Sie daher Ihren eigenen Controller vor und prüfen Sie auf der oberen Seite, ob Sie diese Funktionen verwenden können.
Wenn Sie eine Fehlermeldung erhalten, können Sie eine Verbindung herstellen, indem Sie den Server trennen und erneut verbinden. Versuchen Sie es also bitte.
Es wird die erste Veröffentlichung als Anfänger sein. Wenn Sie also ein falsches Verständnis haben oder mehr davon tun möchten, freuen wir uns immer darauf, von Ihnen zu hören.
Recommended Posts