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 sur rails pour les débutants ② ~ Création de liens ~ Explication de Ruby on rails pour les débutants ③ ~ Création d'une base de données ~
Jusqu'à présent, nous avons créé des contrôleurs et des modèles.
Ils ont des conventions de dénomination. Apprenons.
Un modèle est un dessin de conception permettant de créer une base de données.
Puisqu'il n'y a qu'un seul dessin de conception, créez le nom de la classe de modèle sous une forme unique.
Le tableau est automatiquement représenté au pluriel car il contient plusieurs données pour ce modèle.
Dans l'article précédent, j'ai créé un modèle avec le nom «utilisateur».
Cela créera une table avec le nom «utilisateurs».
De plus, le nom de la classe est en majuscule au début, comme ʻUser`.
Le dossier View contient plusieurs fichiers, il s'agit donc d'un «pluriel».
Puisque Controller a plusieurs actions, créez-le avec plural
.
Dans l'article précédent, nous avons utilisé la console rails pour enregistrer des données dans la base de données.
Cette fois, enregistrons les données dans la base de données en laissant l'utilisateur utiliser le navigateur.
Avant cela, vérifiez une fois la base de données.
Tapez la commande suivante dans le terminal.
rails dbconsole
Vous pouvez activer l'affichage des noms de colonnes avec le code suivant.
sqlite> .headers on
Dans cet état, vous pouvez vérifier le contenu en écrivant l'instruction SQL suivante.
sqlite> select * from users;
id|name|password|created_at|updated_at
1|poco|maru|2020-05-20 10:50:13.177731|2020-05-20 10:50:13.177731
Vous pouvez voir que la table des utilisateurs contient désormais les colonnes de nom et de mot de passe.
Créons maintenant un formulaire de saisie et stockons les données envoyées par l'utilisateur dans la base de données.
Écrivez le code suivant dans le fichier /users/new.html.erb.
new.html.erb
<%= form_tag("/users/create") do %>
<p>Nom d'utilisateur</p>
<input name="name">
<p>password</p>
<input name="password">
<input type="submit" value="Envoyer">
<% end %>
form_tag
est utilisé pour envoyer ou supprimer n'importe quelle valeur du fichier de vue vers le contrôleur. C'est la soi-disant «requête POST». Pour la différence entre get request et post request, veuillez consulter l'article ici.
Lorsqu'un utilisateur envoie un bouton avec type =" submit "
, une demande de publication correspondant à ʻusers / create` est exécutée.
Cette fois, le routage est le suivant.
routes.rb
post "users/create" => "users#create"
Autrement dit, les données ci-dessus sont envoyées à l'action de création du contrôleur des utilisateurs. Dans l'action de création, écrivez le code suivant.
users_controller.rb
def create
user = User.new(name: params[:name], password: params[:password])
user.save
end
Ce code utilise la classe User du modèle utilisateur pour stocker les données dans la table users de la base de données.
S'il y a une balise avec l'attribut name spécifié dans les données envoyées par form_tag, la valeur peut être gérée comme params [attribut nom]
dans le contrôleur.
Dans ce cas, la valeur de <input name =" name ">
est stockée dans params [: name]
, et la valeur de <input name =" password ">
est stockée dans params [: password].
Un modèle est créé en utilisant ʻUser.new (nom: params [: nom], mot de passe: params [: mot de passe]) `pour les données envoyées et stockées dans la base de données.
De l'utilisateur, c'est comme suit.
Appuyez sur "Envoyer" dans cet état. Ensuite, dans l'action de création du contrôleur des utilisateurs, la chaîne this est stockée dans params [: name] et la chaîne test est stockée dans params [: password].
J'ai pu stocker les données comme suit.
3|this|test|2020-05-21 05:30:36.718523|2020-05-21 05:30:36.718523
Cependant, si vous le laissez tel quel, il n'y a pas de changement particulier même si vous appuyez sur envoyer. C'est ennuyeux, alors redirigeons vers un autre fichier.
Lorsque vous appuyez sur envoyer, l'action de création du contrôleur des utilisateurs est exécutée, donc si vous écrivez le code de redirection dans cette action de création, il sera redirigé vers un autre fichier.
Ajoutons le code au contrôleur des utilisateurs comme suit.
users_controller.rb
def create
user = User.new(name: params[:name], password: params[:password])
user.save
redirect_to("/users/index")
end
Si vous l'écrivez ainsi, vous serez redirigé vers le fichier correspondant à / users / index
lorsque vous appuierez sur envoyer.
Au fait, lors de l'écriture d'une redirection, n'oubliez pas de mettre /
au début du chemin.
C'est tout pour cet article.
Je vous remercie pour votre travail acharné.
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