[RUBY] Tutoriel Rails Chapitre 2 Apprentissage

Où j'ai pensé (.´ ・ ω ・) dans le chapitre 2 du didacticiel Rails

Exercice Pour les lecteurs familiers avec CSS: Créez un nouvel utilisateur et utilisez la fonction HTML Inspector de votre navigateur pour rechercher la section «L'utilisateur a été créé avec succès». Que se passe-t-il lorsque je recharge le navigateur?

Google Chrome Shift + Ctrl + I ou (F12) ou clic droit et vérification du clic image.png Vous pouvez voir le code HTML / CSS, Je pense que vous devriez utiliser cette fonction pour vérifier "L'utilisateur a été créé avec succès." ('Ω') ノ Si vous voulez en savoir un peu plus, rendez-vous sur ici

Une brève revue du contenu.

Créer une fonction d'enregistrement d'utilisateur Commande magique "Rails g scaffold" (échafaudage signifie échafaudage en japonais)

$ rails generate scaffold User name:string email:string
$ rails db:migrate

Appuyez simplement sur ces deux commandes et vous aurez une page comme celle-ci. L'enregistrement des utilisateurs est possible ... C'est déjà un domaine magique. image.png

Inconvénients de l'échafaudage

  • Aucune validation des données. (Vous pouvez vous inscrire même avec une adresse vide ou aléatoire)
  • Il n'y a pas d'authentification utilisateur. (Il n'y a pas de fonction de connexion / déconnexion. Tout le monde peut accéder à la page utilisateur)
  • La mise en page et le style ne sont pas dans l'ordre.
  • Aucun test écrit.
  • Difficile à comprendre.

Créer une fonction de publication

$ rails generate scaffold Micropost content:text user_id:integer
$ rails db:migrate

Vous ne pouvez pas simplement appuyer sur deux commandes comme avant.

  • Il est nécessaire d'ajouter un routage.

ruby config/routes.rb


Rails.application.routes.draw do
  resources :microposts #← Ajouter ceci à l'url/Vous pouvez accéder à la page de publication avec micropost
  resources :users
  root 'users#index'
end

La fonction de vérification peut être implémentée en ajoutant des validations à models / micropost.rb

ruby app/models/micropost.rb


class Micropost < ApplicationRecord
  validates :name, length: { maximum: 140 } #Vous pouvez saisir jusqu'à 140 caractères
                   presence: true #Confirmez que la chaîne de caractères est saisie
end

Associez différents modèles de données les uns aux autres

ruby app/models/user.rb


class User < ApplicationRecord
#Les utilisateurs ont beaucoup de micro-messages, donc beaucoup:Ajouter un micropost
  has_many :microposts
end

ruby app/models/micropost.rb


class Micropost < ApplicationRecord
#Étant donné que la micro-publication est liée à l'utilisateur, appartient_to :ajouter un utilisateur
  belongs_to :user
  validates :content, length: { maximum: 140 }
end

Ceci termine l'association RDB. Wow facile (* ´ 艸 `)

Rails Console (un outil pratique qui vous permet d'interagir avec les applications Rails)

#Console de rails
$ rails c
>> #Si vous écrivez du code Ruby ici, il sera exécuté

>> first_user = User.first #Variable d'abord pour l'utilisateur avec l'ID 1 de la table des utilisateurs_Stocker dans l'utilisateur

Contenu du traitement des commandes
User.first
↓ (Il est automatiquement converti en une commande SQL qui gère la base de données.)
User Load (0.2ms)  SELECT "users".* FROM "users" ORDER BY "users"."id" ASC
  LIMIT ?  [["LIMIT", 1]]
↓ résultat de l'exécution SQL
 => #<User id: 1, name: "Michael Hartl", email: "[email protected]",
 created_at: "2020-10-23 00:39:14", updated_at: "2020-10-23 00:41:24">
↓ 
Résultat de l'exécution SQL en premier_Stocker dans l'utilisateur

>> first_user.microposts #Supprimez tous les micro-messages publiés par l'utilisateur plus tôt.
Micropost Load (3.2ms)  SELECT "microposts".* FROM "microposts" WHERE
  "microposts"."user_id" = ? LIMIT ?  [["user_id", 1], ["LIMIT", 11]]
 => #<ActiveRecord::Associations::CollectionProxy [#<Micropost id: 1, content:
 "First micropost!", user_id: 1, created_at: "2020-10-23 02:04:13", updated_at:
 "2020-10-23 02:04:13">, #<Micropost id: 2, content: "Second micropost",
 user_id: 1, created_at: "2020-10-23 02:04:30", updated_at: "2020-10-23
 02:04:30">]>

>> micropost = first_user.microposts.first #first_Stocker le premier message de l'utilisateur dans un micropost variable

Impressions

Ce chapitre n'a pas vraiment trébuché. ('ω') ノ Je suis tombé amoureux de la commodité de git & heroku.

Recommended Posts