· Version 10.15.3 ・ Rubis rubis 2.6.3p62 ・ Rails 6.0.3.2
Dans ci-dessus , nous avons enregistré comment afficher la base de données qui a obtenu l'identifiant de la base de données. Ici, nous enregistrerons sous forme de mémorandum comment refléter le contenu de la base de données publié à partir du formulaire dans la vue. Le rooding est compliqué et difficile ...
Ici, nous allons procéder de la création du formulaire dans la vue.
Créez un formulaire simple pour votre vue.
erb:app/views/Tout/Tout.htme.erb
<div class="form">
<label>title: </label>
<input type="text">
<br>
<label>text: </label>
<textarea></textarea>
<input type="submit" value="Publier">
</div>
Créer le formulaire précédent ↓ J'ai défini soumettre </ strong>. Afin de sauvegarder les données saisies dans le formulaire dans la base de données, il est nécessaire de passer par l'action (contrôleur) en cliquant sur soumettre.
erb:app/views/Tout/Tout.htme.erb
<input type="submit" value="Publier">
Remplissez les itinéraires ci-dessous
config/routes.rb
‥
post "Nom du contrôleur/Nom de l'action" => "Nom du contrôleur#Nom de l'action"
Exemple ↓
config/routes.rb
‥
post "posts/create" => "posts#create"
config/routes.rb
get "Nom du contrôleur/Nom de l'action" => "Nom du contrôleur#Nom de l'action"
post "Nom du contrôleur/Nom de l'action" => "Nom du contrôleur#Nom de l'action"
Il y a get ・ post </ strong> dans les itinéraires de ↑. S'il s'agit du paramètre de routage de page, get est très bien. Cependant, si vous souhaitez obtenir la valeur du formulaire </ strong>, vous devez publier </ strong>.
Vous devez définir la méthode form_tag </ strong> pour envoyer des données au formulaire.
(méthode form_tag) Avant de définir ↓
rb:app/views/Tout.html.erb
<div class="form">
<label>title: </label>
<input type="text">
<br>
<label>text: </label>
<textarea></textarea>
<input type="submit" value="Publier">
</div>
(méthode form_tag) Après avoir défini ↓
rb:app/views/Tout.html.erb
<%= form_tag("/Nom du contrôleur/Nom de l'action") do %>
<div class="form">
<label>title: </label>
<input type="text">
<br>
<label>text: </label>
<textarea></textarea>
<input type="submit" value="Publier">
</div>
<% end %>
Je l'ai mis avec <% = form_tag ("/ posts / create") do%> ‥ <% end%> </ strong>. De plus, la méthode form_tag devient ↓.
rb:app/views/Tout.html.erb
<%= form_tag("/Nom du contrôleur/Nom de l'action") do %>
En traitement
<% end %>
Dans le travail jusqu'à maintenant ・ Création d'un formulaire -Soumettre de la forme à l'action Le nous. Ici, pour afficher les données envoyées, configurez pour rediriger vers la page (liste) correspondante.
Utilisez la méthode redirect_to </ strong> pour configurer une redirection.
app/controllers/Tout_controller.rb
‥
def create
redirect_to("/Nom du contrôleur/Nom de l'action")
end
Exemple ↓
app/controllers/Tout_controller.rb
‥
def create
redirect_to("/posts/index")
end
Vérifiez le formulaire que vous avez défini précédemment.
rb:app/views/Tout.html.erb
<%= form_tag("/Nom du contrôleur/Nom de l'action") do %>
<div class="form">
<label>title: </label>
<input type="text">
<br>
<label>text: </label>
<textarea></textarea>
<input type="submit" value="Publier">
</div>
<% end %>
Les données d'entrée ne peuvent pas être envoyées pour les deux ↓ décrites ici telles quelles.
rb:app/views/Tout.html.erb
<%= form_tag("/Nom du contrôleur/Nom de l'action") do %>
<input type="text">
<textarea></textarea>
<% end %>
Définissez l ' attribut de nom </ strong> pour autoriser l'envoi.
↓ définition de l'attribut de nom
rb:app/views/Tout.html.erb
<%= form_tag("/Nom du contrôleur/Nom de l'action") do %>
<input name="title" type="text">
<textarea name="content"></textarea>
<% end %>
Pour le paramètre d'attribut de nom, définissez le nom de la colonne lors de la création de la base de données. J'ai mis "titre et texte".
En définissant l'attribut name et en l'envoyant, un hachage avec la valeur de l'attribut name comme clé est envoyé à l'action.
Ensuite, associons l '"attribut de nom" au contrôleur d'action.
Dans le formulaire précédent, j'ai défini l'attribut de nom pour qu'il puisse être envoyé à l'action du contrôleur. Ensuite, réglez le contrôleur sur params </ strong> pour recevoir les données soumises dans le formulaire. Les paramètres </ strong> sont des paramètres qui reçoivent des valeurs telles que les données de formulaire et link_to. Dans les vues ci-dessus, j'ai lié les données à la balise
app/controllers/Tout_controller.rb
‥
def create
params[:content]
params[:title]
redirect_to("/Nom du contrôleur/Nom de l'action")
end
Rappelez-vous qu'il a été instancié et créé avec la console rails </ strong>. Entrez pour créer une instance Post à la place des paramètres ci-dessus.
app/controllers/Tout_controller.rb
‥
def create
@post = Post.new(content: params[:content])
@post.save
@post = Post.new(title: params[:title])
@post.save
redirect_to("/posts/index")
end
N'oubliez pas @ post.save </ strong>. Jusqu'à ce point, les données publiées seront affichées si possible.
Le titre et le texte sont reflétés.
Les fichiers ci-dessus sont publiés sur github. Si vous êtes intéressé, veuillez le télécharger. → Github
Ce qui précède est le reflet du contenu publié à partir du formulaire. C'est un mécanisme assez semblable à une application, et la tension monte. Maintenant que la fonction de publication a été créée, je voudrais ajouter un mécanisme tel que "supprimer / éditer" à partir de maintenant.
Livres: <a href = "https://www.amazon.co.jp/%E3%81%9F%E3%81%AE%E3%81%97%E3%81%84Ruby-%E7%AC%AC6 % E7% 89% 88-Informatics-IDEA-% E9% AB% 98% E6% A9% 8B / dp / 4797399848 / ref = sr_1_1? __Mk_ja_JP =% E3% 82% AB% E3% 82% BF% E3% 82 % AB% E3% 83% 8A & dchild = 1 & keywords =% E3% 81% 9F% E3% 81% AE% E3% 81% 97% E3% 81% 84Ruby +% E7% AC% AC6% E7% 89% 88 & qid = 1600088731 & s = livres & sr = 1-1 "target =" blank "> Fun Ruby 6e édition
En outre, il existe un lien vers le portefeuille Twitter, donc si vous êtes intéressé Connectez-vous s'il vous plaît. Je serais très heureux d'avoir des amis avec qui je peux partager mon apprentissage de la programmation.
Recommended Posts