[RUBY] Tutoriel de mastication des rails [Chapitre 2 Application jouet]

2.1 Planification de l'application

■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.

2.2 Ressources des utilisateurs

■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]

    1. Il est difficile de faire une figure, alors passez.
  1. Examinez le comportement affiché et recherchez le code généré par Scaffold qui récupère les informations utilisateur de la base de données. → Le modèle est lié à la base de données. Cependant, le modèle créé cette fois ・ Application_record.rb ・ User.rb Il n'y a pas de code correspondant dans. Ensuite, le côté contrôleur recherche la pièce liée au modèle. Il n'y a pas beaucoup d'endroits où @user = ~ est écrit.

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.

    1. Quel est le nom de fichier de la page qui modifie les informations de l'utilisateur? Puisque la page d'édition est recherchée, la réponse correcte est "edit.html.erb" du ruby intégré.

2.3 Ressource Microposts

■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]

    1. Modifions la page de présentation de l'utilisateur pour afficher le premier micro-message de l'utilisateur. Essayez de deviner la grammaire de l'autre code dans le même fichier (la technologie introduite dans la colonne 1.1 entre en jeu). Allons à / users / 1 pour voir si cela semble bon.

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?

  1. 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.

    1. Essayez de réécrire la section FILL_IN dans le Listing 2.17 pour vérifier que le nom du modèle utilisateur et l'email existent (Figure 2.17). → C'est ça le problème.

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]

    1. Ouvrez le fichier du contrôleur d'application et recherchez le code dans lequel le contrôleur d'application hérite d'ActionController :: Base. → Le code sur la première ligne.
  1. 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

Tutoriel de mastication des rails [Chapitre 2 Application jouet]
tutoriel rails Chapitre 6
tutoriel rails Chapitre 1
tutoriel rails Chapitre 5
tutoriel rails Chapitre 10
tutoriel rails Chapitre 9
tutoriel rails Chapitre 8
Tutoriel Rails Chapitre 3 Apprentissage
Mémorandum du didacticiel Rails (Chapitre 3, 3.1)
Tutoriel Rails Chapitre 4 Apprentissage
Tutoriel Rails Chapitre 1 Apprentissage
Tutoriel Rails Chapitre 2 Apprentissage
Tutoriel de mastication des rails [Chapitre 3 Création de pages presque statiques]
[Tutoriel Rails Chapitre 4] Rubis à saveur de Rails
Tutoriel Chewing the Rails [Chapitre 1 De zéro au déploiement] Deuxième moitié
Tutoriel Chewing the Rails [Chapitre 1 De zéro au déploiement] Première moitié
rails tutry
[Tutoriel Rails Chapitre 5] Créer une mise en page
tutoriel sur les rails
rails tutry
tutoriel sur les rails
rails tutry
tutoriel sur les rails
tutoriel sur les rails
Tutoriel Rails (4e édition) Mémo Chapitre 6
Tutoriel Rails 6e édition Résumé d'apprentissage Chapitre 10
Rails Tutorial 6e édition Résumé de l'apprentissage Chapitre 7
Tutoriel Rails 6e édition Résumé de l'apprentissage Chapitre 4
Tutoriel Rails 6e édition Résumé de l'apprentissage Chapitre 9
Tutoriel Rails 6e édition Résumé de l'apprentissage Chapitre 6
Tutoriel Rails 6e édition Résumé de l'apprentissage Chapitre 5
Rails Tutorial 6e édition Résumé de l'apprentissage Chapitre 2
Tutoriel Rails 6e édition Résumé de l'apprentissage Chapitre 3
Rails Tutorial 6e édition Résumé d'apprentissage Chapitre 8
Test du tutoriel sur les rails
Mémorandum du didacticiel Rails 1
Tutoriel Rails Memorandum 2
[Débutant] Tutoriel Rails
Résoudre Gem :: FilePermissionError lors de l'exécution de rails d'installation de gem (Tutoriel Rails Chapitre 1)
Rubis aromatisé aux rails
Fiche technique du didacticiel Rails
[Rails] Didacticiel Apprendre avec les rails
Tutoriel Rails 4e édition: Chapitre 1 De zéro au déploiement
Résoudre ActiveRecord :: NoDatabaseError lors du test des rails (Tutoriel Rails Chapitre 3)
[Rails] Créer une application
rails Tutorial Fighting Record III
11.1 Ressource AccountActivations: Mémorandum du didacticiel Rails - Chapitre 11