■rails generate Il existe quatre façons de l'utiliser. 1.rails generate controller → Générer le contrôleur, la vue et le routage 2.rails generate model → Générer le modèle et le fichier de migration 3.rails generate migration → Générer le fichier de migration 4.rails generate scaffold → Générer tout (contrôleur, vue, modèle, fichier de migration, routage).
L'explication suivante est facile à comprendre https://diveintocode.jp/blogs/Technology/RailsGenerateCommand
■ Migration Un mécanisme d'exploitation des tables de base de données basé sur les fichiers de migration. Vous pouvez jouer avec la base de données sans écrire directement une instruction SQL. (Vous pouvez créer une table)
■ Fichier de migration Un dessin de conception lors de la génération d'un DB. Fichier de script. Cela se reflète dans la base de données en exécutant rails db: migrate.
■rails generate scaffold User name:string email:string Créez une table appelée utilisateurs dans la base de données. La table a un identifiant, un nom et une adresse e-mail. veux dire. Cela générera users_controller.rb.
■resources :users Correspond aux utilisateurs index create new edit show update destroy Sont tous créés. ":" Est un symbole.
■ Symbole La magie qui rend Ruby plus rapide.
[Entraine toi] Essayez simplement les 1, 2, 3 et 4.
■@users = User.all Les variables commençant par @ sont appelées variables d'instance. Déclarez dans le contrôleur. Si vous le déclarez, vous pouvez l'utiliser dans la vue.
[Entraine toi]
user_controller.rb
private
# Use callbacks to share common setup or constraints between actions.
def set_user
@user = User.find(params[:id])
end
Créez une méthode appelée set_user. Je recherche un utilisateur dans User.find. find () est une méthode pour trouver un modèle. params est également une méthode. Le contenu peut être appelé avec les paramètres [: nom de la colonne]. Ici, nous appelons l'identifiant dans le modèle.
■rails generate scaffold Micropost content:text user_id:integer Générez un fichier de migration avec id, contenu et user_id.
■resources :microposts Correspond aux micro-messages index create new edit show update destroy Sont tous créés. ":" Est un symbole. Cela générera microposts_controller.rb.
[Entraine toi] Veuillez essayer l'un des 1, 2, 3 et 4.
■validates :content, length: { maximum: 140 } Validation qui affiche une erreur lorsque la longueur du contenu dépasse 140 caractères.
■ valide la méthode valider A, B avec une nuance qui affiche une erreur si A n'est pas B.
[Entraine toi] réduction
■has_many :microposts Un utilisateur a plusieurs micro-messages. Décrit dans le modèle car il est impliqué dans la base de données. Puisqu'il s'agit d'un attribut lié à l'utilisateur, il est décrit dans user.rb.
■belongs_to :user Un micropost appartient à un seul utilisateur. Puisqu'il est lié à la base de données, il est décrit dans le modèle. Puisqu'il est lié à la publication, il sera décrit dans micropost.rb.
[Entraine toi]
Puisqu'il dit "afficher la page" et "afficher", c'est une vue dans MVC. Si vous recherchez le dossier de vue, vous trouverez show.html.erb, jetons donc un œil à l'intérieur. Il y a une description que le nom et le courrier sont affichés, donc c'est comme ça si vous l'imitez.
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>Contenu:</strong>
<%= @user.microposts.first.content %>
</p>
<%= link_to 'Edit', edit_user_path(@user) %> |
<%= link_to 'Back', users_path %>
@user est une variable d'instance. Déclaré dans user_controller.rb. Ici, @user = User.find (params [: id]) est spécifié. Appelez le contenu du message avec des micro-messages et le tout premier message avec le premier. .content est inconnu. N'est-ce pas magique?
Le Listing 2.16 est une validation qui valide l'existence du Contenu Micropost. Essayons-le pour voir si nous pouvons vérifier que le micropost n'est pas vide (il semble que la figure 2.16 a réussi). Veuillez le décrire exactement.
ruby:show.html.erb
class User < ApplicationRecord
has_many :microposts
validates name, presence: true # 「FILL_Remplacez "IN" par le code
validates email, presence: true # 「FILL_Remplacez "IN" par le code
end
■ Héritage Le modèle hérite de l'enregistrement d'application. Le contrôleur hérite d'ApplicationController.
■ApplicationRecord、ApplicationController C'est comme un package dans lequel diverses choses sont déjà définies. On ne sait pas ce qui est défini. Interprété comme une chose magique maintenant.
[Entraine toi]
Où se trouve le code où ApplicationRecord hérite d'ActiveRecord :: Base? Essayez de le trouver en vous référant à l'exercice précédent. Astuce: il fonctionne essentiellement de la même manière que le contrôleur, donc si vous regardez les fichiers dans le répertoire app / models ...?) → Il existe un fichier appelé application_record.rb. Je n'étais pas au courant jusqu'à ce qu'on me le dise. C'est le code en haut ici.
Veuillez vider le reste.
Recommended Posts