[RUBY] Rails Tutorial (4. Ausgabe) Memo Kapitel 6

Rails Tutorial (4. Ausgabe) Persönliche Notizen Beschreiben Sie den Teil, an dem Sie interessiert sind, und den Teil, den Sie möglicherweise vergessen.

Sie haben den Benutzer-Controller am Ende des vorherigen Kapitels (5.4) erstellt. Die Fortsetzung. Von Kapitel 6 bis Kapitel 12 werden wir jede Funktion der Benutzerauthentifizierung erstellen. Davon befasst sich Kapitel 6 mit dem Datenmodell und der Speicherung des Benutzers.

Kapitel 6 Erstellen eines Benutzermodells

Rails verfügt bereits über einen Mechanismus zum Implementieren der Authentifizierung, aber jeder Dienst erfordert viel benutzerdefinierte Authentifizierung. Dies ist eine Neuerfindung des Rads, aber das Rails-Tutorial erfindet das Rad neu, da es einfacher ist, eine Zertifizierung durch Dritte zu implementieren, wenn Sie wissen, wie es geht.

6.1 Benutzermodell

Rails nennt die Standarddatenstruktur, die als Datenmodell behandelt wird, "Model" (M in MVC). Schienen Standardmäßig wird "Active Record" verwendet, um mit diesem Modell zu interagieren. Dies ist etwas, das CRUD und Konstruktion ausführt, ohne SQL zu kennen.

6.1.1 Datenbankmigration

Erstellen Sie ein Benutzermodell, um die Datenbank beizubehalten. Führen Sie genau wie beim Erstellen des Users-Controllers "$ Rails g" aus.

Als eine Erinnerung Der Controller ist ** Plural ** Benutzer Das Modell ist ** Singular ** User

Es ist üblich zu sagen.

$ rails g model User name:string email:string

Übergeben Sie das in DB verwendete Attribut (Spaltenname in DB) und den Typ mit : dazwischen.

Es werden verschiedene Dinge generiert, aber in db / migrate / gibt es eine Datei namens time stamp_create_model name s.rb. Informationen zum Erstellen einer Datenbank werden hier definiert.

db/migrate/Zeitstempel_create_users.rb


class CreateUsers < ActiveRecord::Migration[5.0]
  def change
    create_table :users do |t|
      t.string :name
      t.string :email

      t.timestamps
    end
  end
end

Die ID und der Zeitstempel werden automatisch vorbereitet, auch wenn Sie sie nicht angeben. Betrachtet man den Klassennamen, so scheint er "ActiveRecord :: Migration [5.0]" zu erben. (5.0 im Rails-Tuto, aber 5.1-Notation für meine Umgebung) timestamps erstellt zwei Spalten für Zeitstempel [ created_at, updated_at].

Ist es so mit MySQL?

mysql


CREATE DATABASE User;
USE Users;
CREATE TABLE users(
  id INT PRIMARY KEY AUTO_INCREMENT,
  name VARCHAR(300),
  email VARCHAR(300),
  created_at TIMESTAMP NOT NULL CURRENT_TIMESTAMP,
  updated_at TIMESTAMP NOT NULL CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP
);

Jedes Mal, wenn ich SQL schreibe, schreibe ich, dass ein Onkel, der Groß- oder Kleinschreibung nicht zulässt, wahrscheinlich auftritt (ich war auch in meinem vorherigen Job). Um ehrlich zu sein, denke ich, dass es in diesem Alter in Ordnung ist, alle unteren Buchstaben zu verwenden. ~~ Schreibe übrigens in meinem vorherigen Job das Datum in varchar () und hör auf, Mist zu machen ~~

Migration anwenden. Laut einem Freund wurde ich daran erinnert, dass es ein Befehl war, in der Mehrpersonenentwicklung mit besonderer Sorgfalt zu explodieren. Seien wir vorsichtig. Die DB-Seite ist nicht versioniert.

$ rails db:migrate

6.1.2 Modelldatei

** Übung ** Ich habe User.new in der Rails-Konsole gemacht und überprüft, welche Art von Vererbungsbeziehung es hatte.

User class < ApplicationRecord <ActiveRecord :: Base < Object <BaseObject

6.1.3 Benutzerobjekt erstellen

Schienen Konsole Sandbox Option

Rollt am Ende alle Änderungen an der Datenbank zurück.

$ rails console --sandbox

Experimentieren Sie damit. Die Benutzerklasse wurde erstellt, als das Modell erstellt wurde (app / model /), das von ActiveRecord geerbt wird.

Methode verwendet unten gültig?: Bestätigung der Gültigkeit (Gültigkeit) save: Speichern Beim Speichern werden Zeitstempel auf "create_at" und "update_at" gestempelt. Im Rückgabewert wird der Bool-Wert zurückgegeben, ob er gespeichert wurde oder nicht.

create: User.new erstellt es nur im Speicher, speichert es jedoch gleichzeitig mit der Erstellung.

** Übung ** User.create user.name ActiceSupport::timeWithZone

6.2 Benutzer validieren

6.2.1 Validieren

Kurz gesagt, es ist wie das Angeben eines Spaltentyps in SQL Für : email ist Double oder Boolean nicht enthalten. Die folgenden 4 Punkte

--Gegenwart --Länge --Format --Einzigartigkeit

Impressionen

Recommended Posts

Rails Tutorial (4. Ausgabe) Memo Kapitel 6
Rails Tutorial 6. Ausgabe Lernzusammenfassung Kapitel 10
Rails Tutorial 6. Ausgabe Lernzusammenfassung Kapitel 7
Rails Tutorial 6. Ausgabe Lernzusammenfassung Kapitel 4
Rails Tutorial 6. Ausgabe Lernzusammenfassung Kapitel 9
Rails Tutorial 6. Ausgabe Lernzusammenfassung Kapitel 6
Rails Tutorial 6. Ausgabe Lernzusammenfassung Kapitel 5
Rails Tutorial 6. Ausgabe Lernzusammenfassung Kapitel 3
Rails Tutorial 6. Ausgabe Lernzusammenfassung Kapitel 8
Schienen-Tutorial Kapitel 6
Schienen-Tutorial Kapitel 1
Schienen-Tutorial Kapitel 7
Schienen-Tutorial Kapitel 5
Schienen-Tutorial Kapitel 10
Schienen-Tutorial Kapitel 9
Rails Tutorial 4. Ausgabe: Kapitel 1 Von Null bis Bereitstellung
Schienen-Tutorial Kapitel 8
Rails Tutorial Kapitel 3 Lernen
Rails Tutorial Memorandum (Kapitel 3, 3.1)
Rails Tutorial Kapitel 4 Lernen
Rails Tutorial Kapitel 1 Lernen
Rails Tutorial Kapitel 2 Lernen
[Rails Tutorial Kapitel 4] Ruby mit Rails-Geschmack
Schienen Tutry
[Rails Tutorial Kapitel 5] Erstellen Sie ein Layout
Schienen Tutorial
Deshalb habe ich dieses Mal die Methode "Verknüpfen des Inhalts des Verzeichnisses" übernommen. Ich denke, es wird je nach Zeit und Fall richtig verwendet. Tutorial zu Linux, ln, Linux-Befehlsschienen
Tutorial zum Kauen der Schienen [Kapitel 2 Spielzeuganwendung]
Schienen Tutry
Schienen Tutorial
Schienen Tutorial
Rails Tutorial Kapitel 0: Vorbereitende Grundkenntnisse 5
Docker-Tutorial (Memo)
Rails Tutorial Test
Rails Tutorial Memorandum 1
Rails Tutorial Memorandum 2
[Anfänger] Rails Tutorial
Rails Tutorial Kapitel 1 Von Null bis Bereitstellung [Try]
Kauen der Schienen Tutorial [Kapitel 3 Erstellen fast statischer Seiten]
[Lernnotiz] Metaprogramming Ruby 2. Ausgabe: Kapitel 3: Methode
Beheben Sie Gem :: FilePermissionError, wenn Sie Gem Install Rails ausführen (Rails Tutorial Kapitel 1).