[RUBY] [Anfänger] Verwendung des Geräts Ändern Sie die Einstellungen ab Einführung

Einführung

Ich habe Geräte zum Lernen verwendet und einen Anmeldebereich erstellt. Standardmäßig wird es mit einem Benutzernamen und einem Kennwort authentifiziert. Dieses Mal ändern wir jedoch die Einstellung, um sich mit einer Mitarbeiternummer und einem Kennwort zu authentifizieren.

Umgebung

Ruby 2.5.3 Ruby on Rails 5.2.4 Devise 4.7.1

Komplett

スクリーンショット 2020-06-24 16.00.39.png スクリーンショット 2020-06-24 16.00.56.png Ich habe das Erscheinungsbild mit Bootstrap angepasst, aber ich werde die Einstellungen so ändern, dass es so aussieht. # Implementierung

Gemfile


gem 'devise'
$ bundle install

● Einstellungen vornehmen

$ rails generate devise:install

Ich bekomme eine Nachricht wie diese. Da ich ein Anfänger bin, war ich über die Fehlermeldung überrascht, aber wenn dies erscheint, ist es ein Erfolg.

create  config/initializers/devise.rb
      create  config/locales/devise.en.yml
===============================================================================
 
Some setup you must do manually if you haven't yet:
 
  1. Ensure you have defined default url options in your environments files. Here
 	is an example of default_url_options appropriate for a development environment
 	in config/environments/development.rb:
 
   	config.action_mailer.default_url_options = { :host => 'localhost:3000' }
 
 	In production, :host should be set to the actual host of your application.
 
  2. Ensure you have defined root_url to *something* in your config/routes.rb.
 	For example:
 
   	root :to => "home#index"
 
  3. Ensure you have flash messages in app/views/layouts/application.html.erb.
 	For example:
 
   	<p class="notice"><%= notice %></p>
   	<p class="alert"><%= alert %></p>
 
  4. You can copy Devise views (for customization) to your app by running:
 
   	rails g devise:views
 
===============================================================================

● Nachrichteninhalt

  1. Wenn Sie eine Authentifizierungs-E-Mail senden, z. B. eine neue Registrierung, legen Sie die URL des Genehmigungslinks im Text der E-Mail fest.

config/environments/development.rb


config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
  1. Routeneinstellung Es ist so eingestellt, dass nach der Registrierung als Mitglied zur Route gesprungen wird.

  2. Betten Sie eine Flash-Nachricht ein. Es wird verwendet, wenn Sie den Flash beim An- und Abmelden anzeigen möchten. Ich habe es in eine gemeinsame Ansicht eingebettet.

app/views/layouts/application.html.erb


<body>
 <p class="notice"><%= notice %></p>
 <p class="alert"><%= alert %></p>
</body>
  1. So passen Sie die Ansicht an
$ rails g devise:views

● Ändern Sie die Geräteeinstellungen

config/initializers/devise.rb


Um die 43. Linie
Geben Sie die Mitarbeiternummer für den Authentifizierungsschlüssel an
- config.authentication_keys = [:email]
+ config.authentication_keys = [:employee_number]
Um die 55. Linie
Bei Authentifizierungsschlüsselwerten wird die Groß- und Kleinschreibung nicht berücksichtigt
- config.case_insensitive_keys = [:email]
+ config.case_insensitive_keys = [:employee_number]
Um die 60. Linie
Leere Schlüssel loswerden
- config.strip_whitespace_keys = [:email]
+ config.strip_whitespace_keys = [:employee_number]

● Erstellen Sie ein Benutzermodell

$ rails g devise user

app/models/user.rb


#Die folgenden drei Methoden verwenden also den Benutzernamen als Authentifizierungsschlüssel
#Unnötige Methoden überschreiben und deaktivieren.

def email_required?
    false
  end

  def email_changed?
    false
  end
  
  def will_save_change_to_email?
    false
  end

db/migrate/Datum_devise_create_user.rb



class DeviseCreateUsers < ActiveRecord::Migration[5.2]
  def change
    create_table :users do |t|
      ## Database authenticatable
      t.string :employee_number,    null: false, default: ""
      t.string :encrypted_password, null: false, default: ""
## Recoverable
      t.string   :reset_password_token
      t.datetime :reset_password_sent_at

      ## Rememberable
      t.datetime :remember_created_at

      ## Trackable
      # t.integer  :sign_in_count, default: 0, null: false
      # t.datetime :current_sign_in_at
      # t.datetime :last_sign_in_at
      # t.string   :current_sign_in_ip
      # t.string   :last_sign_in_ip

      ## Confirmable
      # t.string   :confirmation_token
      # t.datetime :confirmed_at
      # t.datetime :confirmation_sent_at
      # t.string   :unconfirmed_email # Only if using reconfirmable

      ## Lockable
      # t.integer  :failed_attempts, default: 0, null: false # Only if lock strategy is :failed_attempts
      # t.string   :unlock_token # Only if unlock strategy is :email or :both
      # t.datetime :locked_at
    t.timestamps null: false
    end

Hier ändern!!
     - add_index :users, :email,      unique: true
     + add_index :users, :employee_number,      unique: true
      add_index :users, :reset_password_token, unique: true
    # add_index :users, :confirmation_token,   unique: true
    # add_index :users, :unlock_token,         unique: true
  end
end
$ rails db:migrate

● Controller wechseln

application_controller.rb


class ApplicationController < ActionController::Base
  protect_from_forgery with: :exception
  before_action :configure_permitted_parameters, if: :devise_controller?
  
  protected

  #Methode überschreiben.
  def configure_permitted_parameters
    sign_up_params = [:employee_number, :password, :password_confirmation]
    sign_in_params = [:employee_number, :password, :remember_me] 

      # account_update, sign_in, sign_up,Definieren Sie das Feld von neu
    devise_parameter_sanitizer.permit(:sign_up, keys: sign_up_params)
    devise_parameter_sanitizer.permit(:sign_in, keys: sign_in_params)
    devise_parameter_sanitizer.permit(:account_update, keys: account_update)
  end
 end

Damit sind die Einstellungen abgeschlossen. Alles was Sie tun müssen, ist die Ansicht zu ändern und fertig.

Referenz

[* Rails *] Verwendung von Devise (Rails5-Version) Anfänger von Ruby on Rails haben versucht, gem Devise zu verwenden.

Recommended Posts

[Anfänger] Verwendung des Geräts Ändern Sie die Einstellungen ab Einführung
Verwendung von JUnit (Anfänger)
[Rails] Wie man Edelstein "devise" benutzt
[Schienen] Verwendung von Geräten (Hinweis)
[Einführung in Rails] Verwendung von Render
So wechseln Sie von HTML zu Haml
[Flattern] Wie verwende ich C / C ++ von Dart?
[Hinweis] Verwendung von Rails 6 Devise + Cancancan
Verwendung von Map
Wie benutzt man rbenv?
Verwendung mit_option
Verwendung von fields_for
Verwendung von java.util.logging
Verwendung von collection_select
Wie benutzt man Twitter4J
Wie benutzt man active_hash! !!
Verwendung von MapStruct
Verwendung von TreeSet
[Verwendung des Etiketts]
Wie man Identität benutzt
Wie man Hash benutzt
Verwendung von Dozer.mapper
Wie benutzt man Gradle?
Verwendung von org.immutables
Verwendung von java.util.stream.Collector
Verwendung von VisualVM
Verwendung von Map
Von der Einführung des Geräts bis zur Erstellung der Benutzertabelle
[Rails] So verwenden Sie die Hilfsmethode von devise before_action: authenticate_user!
[Anfänger] Entdecken Sie das N + 1-Problem! Wie benutzt man Bullet?
So wechseln Sie von Oracle Java 8 zu Adopt Open JDK 9
[Java] Verwendung von Map
Verwendung der Warteschlange mit Priorität
[Rails] Verwendung von Enum
Verwendung von Java Optional
Verwendung von Ruby return
[Rails] Verwendung von Enum
Verwendung der Java-Klasse
Wie man Big Decimal benutzt
[Java] Verwendung von removeAll ()
Verwendung von String [] args
Verwendung von Rails Join
Verwendung von Java Map
Ruby: Wie man Cookies benutzt
Verwendung von abhängigen :: zerstören
Verwendung von Eclipse Debug_Shell
Verwendung von Apache POI
[Rails] Verwendung der Validierung
Verwendung von Java-Variablen
[Rails] So verwenden Sie authenticate_user!
Verwendung von GC Viewer