■rails generate Es gibt vier Möglichkeiten, es zu verwenden. 1.rails generate controller → Controller, Ansicht und Routing generieren 2.rails generate model → Modell und Migrationsdatei generieren 3.rails generate migration → Migrationsdatei generieren 4.rails generate scaffold → Alles generieren (Controller, Ansicht, Modell, Migrationsdatei, Routing).
Die folgende Erklärung ist leicht zu verstehen https://diveintocode.jp/blogs/Technology/RailsGenerateCommand
■ Migration Ein Mechanismus zum Betreiben von DB-Tabellen basierend auf Migrationsdateien. Sie können mit der Datenbank herumspielen, ohne direkt eine SQL-Anweisung zu schreiben. (Sie können eine Tabelle erstellen)
■ Migrationsdatei Eine Konstruktionszeichnung beim Generieren einer Datenbank. Skriptdatei. Dies spiegelt sich in der Datenbank wider, indem Rails db: migrate ausgeführt werden.
■rails generate scaffold User name:string email:string Erstellen Sie eine Tabelle mit dem Namen Benutzer in der Datenbank. Die Tabelle enthält ID, Name und E-Mail-Adresse. meint. Dadurch wird users_controller.rb generiert.
■resources :users Entspricht Benutzern index create new edit show update destroy Sind alle erstellt. ":" Ist ein Symbol.
■ Symbol Die Magie, die Ruby schneller macht.
[Trainieren] Probieren Sie einfach alle 1, 2, 3 und 4 aus.
■@users = User.all Variablen, die mit @ beginnen, werden als Instanzvariablen bezeichnet. In der Steuerung deklarieren. Wenn Sie es deklarieren, können Sie es in der Ansicht verwenden.
[Trainieren]
user_controller.rb
private
# Use callbacks to share common setup or constraints between actions.
def set_user
@user = User.find(params[:id])
end
Erstellen Sie eine Methode namens set_user. Ich suche einen Benutzer in User.find. find () ist eine Methode, um ein Modell zu finden. params ist auch eine Methode. Der Inhalt kann mit params [: Spaltenname] aufgerufen werden. Hier rufen wir die ID im Modell auf.
■rails generate scaffold Micropost content:text user_id:integer Generieren Sie eine Migrationsdatei mit ID, Inhalt und Benutzer-ID.
■resources :microposts Entspricht Mikropost index create new edit show update destroy Sind alle erstellt. ":" Ist ein Symbol. Dadurch wird microposts_controller.rb generiert.
[Trainieren] Bitte versuchen Sie es mit 1, 2, 3 und 4.
■validates :content, length: { maximum: 140 } Überprüfung, bei der ein Fehler angezeigt wird, wenn die Länge des Inhalts 140 Zeichen überschreitet.
■ validiert die Methode Eine Nuance, die einen Fehler anzeigt, wenn A in Validierung A und B nicht B ist.
[Trainieren] Kürzung
■has_many :microposts Ein Benutzer hat mehrere Mikroposts. Wird im Modell beschrieben, da es an der Datenbank beteiligt ist. Da es sich um ein Attribut handelt, das sich auf den Benutzer bezieht, wird es in user.rb beschrieben.
■belongs_to :user Ein Mikropost gehört nur einem Benutzer. Da es sich auf die Datenbank bezieht, wird es im Modell beschrieben. Da es sich um ein Posting handelt, wird es in micropost.rb beschrieben.
[Trainieren]
Da dort "Seite anzeigen" und "Anzeige" angezeigt wird, handelt es sich um eine Ansicht in MVC. Wenn Sie nach dem Ansichtsordner suchen, finden Sie show.html.erb. Werfen wir also einen Blick hinein. Es gibt eine Beschreibung, dass der Name und die E-Mail angezeigt werden. Wenn Sie sie imitieren, ist dies also so.
ruby:show.html.erb
<p id="notice"><%= notice %></p>
<p>
<strong>Name:</strong>
<%= @user.name %>
</p>
<p>
<strong>Email:</strong>
<%= @user.email %>
</p>
<p>
<strong>Inhalt:</strong>
<%= @user.microposts.first.content %>
</p>
<%= link_to 'Edit', edit_user_path(@user) %> |
<%= link_to 'Back', users_path %>
@user ist eine Instanzvariable. In user_controller.rb deklariert. Hier wird @user = User.find (params [: id]) angegeben. Rufen Sie den Beitragsinhalt mit Mikropost und den allerersten Beitrag mit zuerst auf. .inhalt ist unbekannt. Ist es nicht Magie?
Listing 2.16 ist eine Validierung, die das Vorhandensein des Micropost-Inhalts bestätigt. Probieren wir es aus, um zu sehen, ob wir überprüfen können, ob der Mikropost nicht leer ist (es sieht so aus, als ob Abbildung 2.16 erfolgreich ist). Bitte beschreiben Sie es genau.
ruby:show.html.erb
class User < ApplicationRecord
has_many :microposts
validates name, presence: true # 「FILL_Ersetzen Sie "IN" durch Code
validates email, presence: true # 「FILL_Ersetzen Sie "IN" durch Code
end
■ Vererbung Das Modell erbt vom Anwendungsdatensatz. Der Controller erbt von ApplicationController.
■ApplicationRecord、ApplicationController Es ist wie ein Paket, in dem verschiedene Dinge bereits definiert sind. Es ist unbekannt, was definiert ist. Jetzt als magische Sache interpretiert.
[Trainieren]
Wo befindet sich der Code, in dem ApplicationRecord ActiveRecord :: Base erbt? Versuchen Sie, ihn anhand der vorherigen Übung zu finden. Tipp: Es funktioniert im Wesentlichen genauso wie der Controller. Wenn Sie sich also die Dateien im Verzeichnis app / models ansehen ...?) → Es gibt eine Datei namens application_record.rb. Ich war mir dessen nicht bewusst, bis es mir gesagt wurde. Dies ist der Code oben hier.
Bitte spülen Sie den Rest.
Recommended Posts