Cette fois, c'est une continuation de l'article précédent.
Veuillez consulter l'article précédent si vous le souhaitez.
Cette fois, je vais résumer le flash.
Explication de Ruby sur rails pour les débutants ①
Explication de Ruby on 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 ~
Explication de Ruby on rails pour les débutants ⑥ ~ Création de la validation ~
Je l'ai essayé sur Twitter pour trouver un exemple concret.
La partie où le «nom d'utilisateur saisi est ~» est le flash.
Le flash ne s'affiche qu'une seule fois sur la page et le flash disparaît lorsque la page est actualisée ou déplacée vers une autre page.
Implémentons ce flash.
Une variable spéciale, flash, est prévue pour afficher les flashs sur les rails.
Vous pouvez l'utiliser dans votre fichier de vue en affectant une chaîne à la variable flash [: notice]
dans l'action. Le flash est censé être automatiquement supprimé une fois qu'il a été utilisé.
De plus, comme le flash est couramment utilisé dans de nombreux endroits, il est pratique de l'utiliser dans le fichier ʻapplication.html.erb`.
Ce qui est écrit dans le fichier ʻapplication.html.erb` sera affiché en commun à tous les fichiers de vue.
Entrez ce qui suit dans le fichier application.html.erb sous le dossier views >> layouts afin que le flash puisse être affiché.
application.html.erb
<% if flash[:notice]%>
<div class="flash">
<%= flash[:notice]%>
</div>
<% end %>
Vous pouvez maintenant voir le flash s'il existe.
Quoi qu'il en soit, définissons également le CSS.
application.css
.flash {
background-color: brown;
color: white;
}
Réécrivons le contrôleur de messages comme suit et affectons le message d'erreur à flash [: notice]
.
posts_controller.rb
def create
post = Post.new(content: params[:content])
@content = params[:content]
if post.save
flash[:notice] = "Publié avec succès"
redirect_to("/posts/all")
else
flash[:notice] = post.errors.full_messages[0]
render("posts/new")
end
end
Si la partie post.save
échoue, les messages d'erreur sont stockés sous forme de liste dans post.errors.full_messages
, donc la première valeur est stockée dansflash [: notice]
. .. Si la publication réussit, enregistrez ce fait dans flash [: notice]
.
Vous avez maintenant implémenté le flash.
Essayons-le.
Ouvrons le fichier new.html.erb suivant. De plus, la validation est la suivante.
new.html.erb
<%= form_tag("/posts/create") do %>
<textarea name="content" cols="30" rows="10"><%= @content%></textarea>
<input type="submit" value="Envoyer">
<% end %>
post.rb
class Post < ApplicationRecord
validates :content, {presence: true}
validates :content, {length: {maximum: 20}}
end
Pour tester, appuyons sur envoyer sans entrer de valeur. Il est validé et le message d'erreur est stocké dans flash [: notice]
.
Ensuite, entrez 20 caractères ou plus et appuyez sur envoyer. Le message d'erreur suivant s'affiche:
Essayons maintenant si le message est réussi. Ce sera comme suit.
Ça s'est bien passé.
C'est tout pour cet article.
Merci pour votre relation.
Recommended Posts