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 ~
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.
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.
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.
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 %>
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.
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.
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.
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.
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.
Lassen Sie uns die erstellte Datenbank überprüfen.
Sie können den Datenbankclient mit dem folgenden Code starten.
rails dbconsole
Nach dem Starten des Datenbankclients können Sie die Tabellenliste mit dem folgenden Code anzeigen.
sqlite>.table
ar_internal_metadata schema_migrations users
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);
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.
Der Zugriff auf die Datenbank erfolgt über ein Modell.
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>
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