Cette fois, c'est une continuation de l'article précédent.
Veuillez consulter l'article précédent si vous le souhaitez.
Explication de Ruby sur rails pour les débutants ①
Explication de Ruby on rails pour les débutants ② ~ Création de liens ~
Une base de données est un endroit pour stocker des données.
Dans Ruby on Rails, vous pouvez faire fonctionner la base de données en créant un modèle à partir du contrôleur.
Cette fois, envisagez de créer une base de données pour stocker les ID utilisateur et les mots de passe.
Avant de créer la base de données, créons une fois le contrôleur et l'action.
Exécutez le code suivant dans le terminal.
rails g controller users index
Vous avez maintenant créé un contrôleur utilisateur et y avez ajouté une action d'index. Dans la commande rails g, vous pouvez définir deux noms, le nom du contrôleur et le nom de l'action.
Itinéraire comme suit.
routes.rb
get 'users/index' => "users#index"
Vous pouvez maintenant effectuer l'action d'indexation sur le contrôleur utilisateur lorsque l'utilisateur vous envoie l'URL «utilisateur / index».
Vérifions le contrôleur utilisateur. Cette fois, l'action a été ajoutée depuis le début.
users_controller.rb
class UsersController < ApplicationController
def index
end
end
En fait, le fichier de vue est également généré automatiquement.
Écrivez le fichier index.html.erb comme suit.
index.html.erb
<h1>Users#index</h1>
<p>Find me in app/views/users/index.html.erb</p>
Accédez à ce fichier à l'URL suivante.
http://localhost:3000/users/index
L'écran suivant va apparaitre.
Le contrôleur recherche le fichier de vue et le renvoie à l'utilisateur.
À ce moment-là, en définissant une variable pour l'action dans le contrôleur, cette variable peut être utilisée dans le fichier de vue.
Définissons les variables comme suit.
users_controller.rb
class UsersController < ApplicationController
def index
@users = ["maru", "poco"]
end
end
En utilisant @ avant une variable, comme @user, cette variable devient une variable d'instance. Il y avait une explication dans ici.
Ainsi, lorsque vous passez des variables du contrôleur au fichier de vue, utilisez des variables d'instance au lieu de variables locales.
Le contrôleur Rails utilise des variables d'instance dans les cas suivants: -Passer des données entre les méthodes (généralement en chargeant des données avec before_action) -Passer des données à la vue
De cette manière, la variable d'instance créée avec la variable @ peut être utilisée dans le fichier de vue.
index.html.erb
<% @users.each do |user| %>
<div>
<%= user %>
</div>
<% end %>
Puisque @users stocke un tableau, il peut être récupéré avec .each do ~ end. Cette partie est entièrement en code Ruby, alors mettons-la dans <%%>. Le fait est qu'il est pris en sandwich entre <%%> au lieu de <% =%> car il n'a pas besoin d'être affiché dans le navigateur.
Affichez-le sur le navigateur à la partie «<% = user%>».
Cette fois, je l'ai utilisé en définissant un tableau dans l'action du contrôleur et en le passant au fichier de vue.
Pensez maintenant à importer les données de la base de données dans une action et à les transmettre à un fichier de vue.
Afin de travailler avec la base de données, vous devez créer un modèle.
Un modèle est un "mécanisme de manipulation des informations dans une base de données". Alternativement, il peut être appelé une «classe qui interagit avec la base de données».
Avec le modèle dans le code ci-dessous. Créez un fichier de migration.
rails g model user name:string password:string
L'utilisateur est le nom du modèle, et l'identifiant et le mot de passe sont les colonnes. Les colonnes sont les données verticales de la base de données ou les colonnes.
La base de données créée par ce code ressemble au tableau ci-dessous.
La table entière est appelée «table», les données verticales sont appelées «colonne» et les données horizontales sont appelées «enregistrement». Un modèle est une classe Ruby qui correspond à cette base de données, et une instance de la classe modèle est un objet qui représente une ligne (enregistrement) et a des attributs qui correspondent aux colonnes de la table.
L'exécution du code ci-dessus créera un fichier de migration et un modèle pour créer la base de données.
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
Vous pouvez créer une base de données en important avec le code sous le fichier de migration créé ci-dessus.
rails db:migrate
À ce stade, vous avez créé une base de données.
Maintenant, résumons ce qu'est un fichier de migration.
Un fichier de migration est comme un plan de création d'une base de données.
En exécutant le fichier de migration, vous pouvez créer une table de données basée sur son contenu.
Dans les rails, l'exécution de la commande rails g model
générera à la fois un fichier de migration et un modèle.
Gardez à l'esprit que les fichiers de migration sont un outil de création de structures de base de données et que les modèles sont comme des outils qui relient la base de données et les contrôleurs.
Commençons la console Rails avec le code suivant.
rails console
Après avoir lancé la console, utilisons le modèle pour stocker les données dans la base de données.
user = User.new(name: "poco", password: "maru")
user.save
Vous avez maintenant enregistré les données dans la base de données.
Vérifions la base de données créée.
Vous pouvez démarrer le client de base de données avec le code suivant.
rails dbconsole
Après avoir démarré le client de base de données, vous pouvez afficher la liste des tables avec le code suivant.
sqlite>.table
ar_internal_metadata schema_migrations users
Vous pouvez afficher le schéma avec le code suivant. Schéma signifie structure. Vous pouvez vérifier la structure de la base de données spécifiée.
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);
Vous pouvez arrêter le client de base de données avec le code suivant.
sqlite>.quit
À ce stade, vous avez créé une base de données.
Utilisons réellement la base de données.
La base de données est accessible à l'aide d'un modèle.
Lorsque vous utilisez la base de données, accédez-y à partir du contrôleur à l'aide du modèle.
users_controller.rb
class UsersController < ApplicationController
def index
@user = User.first
end
end
Vous pouvez maintenant utiliser la variable d'instance @user dans le fichier index.html.erb.
@user contient l'enregistrement de la toute première colonne de la table users.
Utilisez-le dans le fichier index.html.erb comme suit:
index.html.erb
<p><%= @user.name %></p>
<p><%= @user.password %></p>
C'est tout pour cette fois.
Merci d'être resté avec nous jusqu'à présent.
Veuillez consulter les articles suivants si vous le souhaitez.
Explication de Ruby on rails pour les débutants ⑥ ~ Création de la validation ~
Explication de Ruby on rails pour les débutants ⑦ ~ Implémentation de flash ~
Recommended Posts