Erklärung von Ruby on Rails für Anfänger ③ ~ Erstellen einer Datenbank ~

Einführung

Diesmal ist es eine Fortsetzung des vorherigen Artikels.

Bitte lesen Sie den vorherigen Artikel, wenn Sie möchten.

Erklärung von Ruby on Rails für Anfänger ①

Erklärung von Ruby on Rails für Anfänger ② ~ Erstellen von Links ~

Was ist eine Datenbank?

Eine Datenbank ist ein Ort zum Speichern von Daten.

In Ruby on Rails können Sie die Datenbank betreiben, indem Sie ein Modell aus dem Controller erstellen. image.png

Controller erstellen

In diesem Fall sollten Sie eine Datenbank zum Speichern von Benutzer-IDs und Kennwörtern erstellen.

Lassen Sie uns vor dem Erstellen der Datenbank den Controller und die Aktion einmal erstellen.

Führen Sie den folgenden Code im Terminal aus.

rails g controller users index

Sie haben jetzt einen Benutzercontroller erstellt und ihm eine Indexaktion hinzugefügt. Im Befehl Rails g können Sie zwei Namen festlegen, den Controller-Namen und den Aktionsnamen.

Route wie folgt.

routes.rb


get 'users/index' => "users#index"

Jetzt können Sie die Indexaktion des Benutzercontrollers ausführen, wenn der Benutzer Ihnen die URL "Benutzer / Index" sendet.

Lassen Sie uns den Benutzer-Controller überprüfen. Dieses Mal wurde die Aktion von Anfang an hinzugefügt.

users_controller.rb


class UsersController < ApplicationController
  def index
  end
end

Tatsächlich wird die Ansichtsdatei auch automatisch generiert.

image.png

Schreiben Sie die Datei index.html.erb wie folgt.

index.html.erb


<h1>Users#index</h1>
<p>Find me in app/views/users/index.html.erb</p>

Greifen Sie unter der folgenden URL auf diese Datei zu.

http://localhost:3000/users/index

Der folgende Bildschirm wird angezeigt.

image.png

Übergeben Sie Variablen von der Aktion an die Ansichtsdatei

image.png

Der Controller sucht nach der Ansichtsdatei und gibt sie an den Benutzer zurück.

Zu diesem Zeitpunkt kann diese Variable durch Definieren einer Variablen für die Aktion in der Steuerung in der Ansichtsdatei verwendet werden.

Definieren wir die Variablen wie folgt.

users_controller.rb


class UsersController < ApplicationController
  def index
    @users = ["maru", "poco"]
  end
end

Wenn Sie @ vor einer Variablen wie @user verwenden, wird diese Variable zu einer Instanzvariablen. Es gab eine Erklärung in hier.

Verwenden Sie daher beim Übergeben von Variablen vom Controller an die Ansichtsdatei Instanzvariablen anstelle lokaler Variablen.

Der Rails-Controller verwendet in den folgenden Fällen Instanzvariablen: -Übertragen von Daten zwischen Methoden (normalerweise Laden von Daten mit before_action) -Daten an die Ansicht übergeben

Auf diese Weise kann die mit der Variablen @ erstellte Instanzvariable in der Ansichtsdatei verwendet werden.

index.html.erb


<% @users.each do |user| %>
  <div>
    <%= user %>
  </div>
<% end %>

image.png

Da @users ein Array speichert, kann es mit .each do ~ end abgerufen werden. Dieser Teil besteht ausschließlich aus Ruby-Code. Fügen wir ihn also in <%%> ein. Der Punkt ist, dass es zwischen <%%> statt <% =%> liegt, da es nicht im Browser angezeigt werden muss.

Zeigen Sie es im Browser unter dem Teil "<% = Benutzer%>" an.

Dieses Mal habe ich es verwendet, indem ich ein Array in der Aktion des Controllers definiert und an die Ansichtsdatei übergeben habe.

Überlegen Sie nun, Daten aus der Datenbank in eine Aktion zu übernehmen und an eine Ansichtsdatei zu übergeben.

Modell erstellen

image.png

Um mit der Datenbank arbeiten zu können, müssen Sie ein Modell erstellen.

Ein Modell ist ein "Mechanismus zum Bearbeiten von Informationen in einer Datenbank". Alternativ kann es als "Klasse, die mit der Datenbank interagiert" bezeichnet werden.

Mit dem Modell im Code unten. Erstellen Sie eine Migrationsdatei.

rails g model user name:string password:string

Benutzer ist der Modellname und ID und Passwort sind die Spalten. Spalten sind die vertikalen Daten in der Datenbank oder Spalten.

Die mit diesem Code erstellte Datenbank sieht wie in der folgenden Tabelle aus.

image.png

Die gesamte Tabelle wird als "Tabelle" bezeichnet, die vertikalen Daten als "Spalte" und die horizontalen Daten als "Datensatz". Ein Modell ist eine Ruby-Klasse, die dieser Datenbank entspricht, und eine Instanz der Modellklasse ist ein Objekt, das eine Zeile (Datensatz) darstellt und Attribute aufweist, die den Spalten der Tabelle entsprechen.

Durch Ausführen des obigen Codes werden eine Migrationsdatei und ein Modell zum Erstellen der Datenbank erstellt.

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

      t.timestamps
    end
  end
end

user.rb


class User < ApplicationRecord
end

Sie können eine Datenbank erstellen, indem Sie mit dem Code unter der oben erstellten Migrationsdatei importieren.

rails db:migrate

Zu diesem Zeitpunkt haben Sie eine Datenbank erstellt.

Lassen Sie uns nun zusammenfassen, was eine Migrationsdatei ist.

Was ist eine Migrationsdatei?

Eine Migrationsdatei ist wie eine Blaupause zum Erstellen einer Datenbank.

Durch Ausführen der Migrationsdatei können Sie eine Datentabelle basierend auf ihrem Inhalt erstellen.

In Rails generiert das Ausführen des Befehls "Rails g Model" sowohl eine Migrationsdatei als auch ein Modell.

Beachten Sie, dass Migrationsdateien ein Werkzeug zum Erstellen von Datenbank-Frameworks sind und Modelle wie Werkzeuge sind, die die Datenbank und die Controller verbinden.

Daten in Datenbank speichern

Beginnen wir die Rails-Konsole mit dem folgenden Code.

rails console

Verwenden Sie nach dem Starten der Konsole das Modell, um die Daten in der Datenbank zu speichern.

user = User.new(name: "poco", password: "maru")
user.save

Sie haben die Daten jetzt in der Datenbank gespeichert.

Überprüfen Sie die Datenbank

Lassen Sie uns die erstellte Datenbank überprüfen.

Starten Sie den Datenbankclient

Sie können den Datenbankclient mit dem folgenden Code starten.

rails dbconsole

Liste der Tabellen

Nach dem Starten des Datenbankclients können Sie die Tabellenliste mit dem folgenden Code anzeigen.

sqlite>.table

ar_internal_metadata schema_migrations users

Schema anzeigen

Sie können das Schema mit dem folgenden Code anzeigen. Schema bedeutet Struktur. Sie können die Struktur der angegebenen Datenbank überprüfen.

sqlite>.schema users

CREATE TABLE IF NOT EXISTS "users" ("id" integer PRIMARY KEY AUTOINCREMENT NOT NULL, "name" varchar, "password" varchar, "created_at" datetime NOT NULL, "updated_at" datetime NOT NULL);

Stoppen Sie den Datenbankclient

Sie können den Datenbankclient mit dem folgenden Code stoppen.

sqlite>.quit

Zu diesem Zeitpunkt haben Sie eine Datenbank erstellt.

Lassen Sie uns tatsächlich die Datenbank verwenden.

Nutzung der Datenbank

Der Zugriff auf die Datenbank erfolgt über ein Modell.

image.png

Wenn Sie die Datenbank verwenden, greifen Sie mithilfe des Modells vom Controller darauf zu.

users_controller.rb


class UsersController < ApplicationController
  def index
    @user = User.first
  end
end

Sie können jetzt die Instanzvariable @user in der Datei index.html.erb verwenden.

@user enthält den Datensatz für die allererste Spalte der Benutzertabelle.

Verwenden Sie es in der Datei index.html.erb wie folgt:

index.html.erb


<p><%= @user.name %></p>
<p><%= @user.password %></p>

image.png

Am Ende

Das ist alles für diese Zeit.

Vielen Dank, dass Sie bisher bei uns geblieben sind.

Bitte lesen Sie die folgenden Artikel, wenn Sie möchten.

Erklärung von Ruby on Rails für Anfänger ④ ~ Verwendung von Namensregeln und form_Tag ~

Erklärung von Ruby on Rails für Anfänger ⑤ ~ Bearbeiten und Löschen der Datenbank ~

Erklärung von Ruby on Rails für Anfänger ⑥ ~ Erstellung der Validierung ~

Erklärung von Ruby on Rails für Anfänger ⑦ ~ Implementierung von Flash ~

Recommended Posts

Erklärung von Ruby on Rails für Anfänger ③ ~ Erstellen einer Datenbank ~
Erklärung von Ruby on Rails für Anfänger ② ~ Links erstellen ~
Erklärung von Ruby auf Schienen für Anfänger ①
Erklärung von Ruby on Rails für Anfänger ⑤ ~ Datenbank bearbeiten und löschen ~
Erklärung von Ruby auf Schienen für Anfänger ⑥ ~ Erstellung der Validierung ~
Erklärung von Ruby on Rails für Anfänger ⑦ ~ Flash-Implementierung ~
[Verfahren 1 für Anfänger] Ruby on Rails: Aufbau einer Entwicklungsumgebung
Erklärung von Ruby on Rails für Anfänger ④ ~ Informationen zu Benennungsregeln und zur Verwendung von form_Tag ~
(Ruby on Rails6) Erstellen einer Datenbank und Anzeigen in einer Ansicht
[Ruby on Rails] Ein Memorandum mit Layoutvorlagen
(Ruby on Rails6) Erstellen von Daten in einer Tabelle
[Für Anfänger] Verfahren zum Erstellen eines Controllers mithilfe von Schienen
Ein Hinweis zum Seed-Feature von Ruby on Rails
[Ruby on Rails] So vermeiden Sie das Erstellen unnötiger Routen für die Entwicklung
[Ruby on Rails] Einführung der Anfangsdaten
[Rails] Hinzufügen der Ruby On Rails-Kommentarfunktion
[Ruby on Rails] Erstellen eines Anfrageformulars
Rails [Für Anfänger] Implementierung der Kommentarfunktion
[Ruby on Rails] Japanische Fehlernotation
Rails Grundlagen zum Erstellen einer neuen Anwendung
[Ruby on Rails] Implementierung einer ähnlichen Funktion
Anfänger haben mit Ruby on Rails ein Portfolio erstellt
[Ruby on Rails] Erstellen Sie mit Chartick ein kreisförmiges Diagramm der Summen nach Spalten
Eine Reihe von Ablauf der Tabellenerstellung → Datensatzerstellung, Löschung → Tabellenlöschung in Ruby on Rails
Validierungseinstellungen für die Ruby on Rails-Anmeldefunktion
Implementierung der Ruby on Rails-Anmeldefunktion (Sitzung)
Zusammenfassung der einfachen Funktionen von Bootstrap für Anfänger
[Ruby on Rails] Bis zur Einführung von RSpec
[Ruby on Rails] Select2-Einführungsnotiz für Webpacker
Ruby on Rails ~ Grundlagen von MVC und Router ~
Einführung in Rspec, ein Testframework für Ruby on Rails
Eine Sammlung einfacher Fragen für Java-Anfänger
[Ruby on Rails] Individuelle Anzeige von Fehlermeldungen
Ich habe mit Ruby On Rails ein Portfolio erstellt
[Ruby on Rails] Implementieren Sie ein Kreisdiagramm, das den Prozentsatz der Farben angibt
Ruby on Rails Grundlagen
Ruby On Rails Association
Eine Überprüfung des von Rails-Anfängern verwendeten Codes
[Ruby on Rails] Asynchrone Kommunikation der Posting-Funktion, Ajax
Erstellen Sie eine Ruby on Rails-Entwicklungsumgebung in AWS Cloud9
Implementierung der Ruby on Rails-Anmeldefunktion (Devise Edition)
[Ruby on Rails] Von der MySQL-Konstruktion zum Datenbankwechsel
Versuchen Sie es mit dem Ruby on Rails-Abfrageattribut
[Für Anfänger] Erläuterung von Klassen, Instanzen und Statik in Java
Ruby on Rails Lernrekord -2020.10.03
Tutorial zum Erstellen eines Blogs mit Rails für Anfänger Teil 1