[RUBY] Rails Tutorial Kapitel 2 Lernen

Wo ich in Kapitel 2 des Rails-Tutorials gedacht habe (.´ ・ ω ・)

Übung Für Leser, die mit CSS vertraut sind: Erstellen Sie einen neuen Benutzer und verwenden Sie die HTML Inspector-Funktion Ihres Browsers, um den Abschnitt "Benutzer wurde erfolgreich erstellt" nachzuschlagen. Was passiert, wenn ich den Browser neu lade?

Google Chrome Shift + Strg + I oder (F12) oder klicken Sie mit der rechten Maustaste und klicken Sie auf Bestätigung image.png Sie können den HTML / CSS-Code sehen, Ich denke, Sie sollten diese Funktion verwenden, um zu überprüfen, ob der Benutzer erfolgreich erstellt wurde. ('Ω') ノ Wenn Sie etwas mehr wissen möchten, gehen Sie bitte zu hier.

Eine kurze Überprüfung des Inhalts.

Erstellen Sie eine Benutzerregistrierungsfunktion Magischer Befehl "Schienen g Gerüst" (Gerüst bedeutet auf Japanisch Gerüst)

$ rails generate scaffold User name:string email:string
$ rails db:migrate

Drücken Sie einfach diese beiden Befehle und Sie erhalten eine Seite wie diese. Benutzerregistrierung ist möglich ... Es ist bereits ein magischer Bereich. image.png

Nachteile des Gerüsts

  • Keine Datenvalidierung. (Sie können sich auch mit einer leeren oder zufälligen Adresse registrieren)
  • Es gibt keine Benutzerauthentifizierung. (Es gibt keine Anmelde- / Abmeldefunktion. Jeder kann auf die Benutzerseite zugreifen.)
  • Das Layout und der Stil sind nicht in Ordnung.
  • Kein Test geschrieben.
  • Schwierig zu verstehen.

Erstellen Sie eine Buchungsfunktion

$ rails generate scaffold Micropost content:text user_id:integer
$ rails db:migrate

Sie können nicht einfach zwei Befehle wie zuvor drücken.

  • Es ist notwendig, Routing hinzuzufügen.

ruby config/routes.rb


Rails.application.routes.draw do
  resources :microposts #← Fügen Sie dies zur URL hinzu/Sie können mit Micropost auf die Post-Seite zugreifen
  resources :users
  root 'users#index'
end

Die Überprüfungsfunktion kann implementiert werden, indem Validierungen zu models / micropost.rb hinzugefügt werden

ruby app/models/micropost.rb


class Micropost < ApplicationRecord
  validates :name, length: { maximum: 140 } #Sie können bis zu 140 Zeichen eingeben
                   presence: true #Bestätigen Sie, dass die Zeichenfolge eingegeben wurde
end

Verknüpfen Sie verschiedene Datenmodelle miteinander

ruby app/models/user.rb


class User < ApplicationRecord
#Benutzer haben viele Mikroposts, also viele:Mikropost hinzufügen
  has_many :microposts
end

ruby app/models/micropost.rb


class Micropost < ApplicationRecord
#Da der Mikropfosten an den Benutzer gebunden ist, gehört_to :Benutzer hinzufügen
  belongs_to :user
  validates :content, length: { maximum: 140 }
end

Damit ist die RDB-Zuordnung abgeschlossen. Wow einfach (* ´ 艸 `)

Rails Console (ein praktisches Tool, mit dem Sie mit Rails-Apps interagieren können)

#Schienenkonsole
$ rails c
>> #Wenn Sie hier Ruby-Code schreiben, wird dieser ausgeführt

>> first_user = User.first #Variable zuerst für Benutzer mit der ID 1 aus der Benutzertabelle_Im Benutzer speichern

Befehlsverarbeitungsinhalt
User.first
↓ (Es wird automatisch in einen SQL-Befehl konvertiert, der die Datenbank betreibt.)
User Load (0.2ms)  SELECT "users".* FROM "users" ORDER BY "users"."id" ASC
  LIMIT ?  [["LIMIT", 1]]
↓ SQL-Ausführungsergebnis
 => #<User id: 1, name: "Michael Hartl", email: "[email protected]",
 created_at: "2020-10-23 00:39:14", updated_at: "2020-10-23 00:41:24">
↓ 
SQL-Ausführungsergebnis zuerst_Im Benutzer speichern

>> first_user.microposts #Nehmen Sie alle vom Benutzer zuvor veröffentlichten Mikroposts heraus.
Micropost Load (3.2ms)  SELECT "microposts".* FROM "microposts" WHERE
  "microposts"."user_id" = ? LIMIT ?  [["user_id", 1], ["LIMIT", 11]]
 => #<ActiveRecord::Associations::CollectionProxy [#<Micropost id: 1, content:
 "First micropost!", user_id: 1, created_at: "2020-10-23 02:04:13", updated_at:
 "2020-10-23 02:04:13">, #<Micropost id: 2, content: "Second micropost",
 user_id: 1, created_at: "2020-10-23 02:04:30", updated_at: "2020-10-23
 02:04:30">]>

>> micropost = first_user.microposts.first #first_Speichern Sie den ersten Beitrag des Benutzers in variablem Mikropost

Impressionen

Dieses Kapitel ist nicht wirklich gestolpert. ('ω') ノ Ich habe mich in die Bequemlichkeit von Git & Heroku verliebt.

Recommended Posts