Explication de Ruby on rails pour les débutants ⑦ ~ Implémentation Flash ~

introduction

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 ④ ~ Comment utiliser les règles de nommage et form_Tag ~

Explication de Ruby on rails pour les débutants ⑤ ~ Modification et suppression de la base de données ~

Explication de Ruby on rails pour les débutants ⑥ ~ Création de la validation ~

Qu'est-ce qu'un flash

Je l'ai essayé sur Twitter pour trouver un exemple concret.

image.png

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.

image.png

Implémentons ce flash.

Implémentation 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

image.png

Pour tester, appuyons sur envoyer sans entrer de valeur. Il est validé et le message d'erreur est stocké dans flash [: notice].

image.png

Ensuite, entrez 20 caractères ou plus et appuyez sur envoyer. Le message d'erreur suivant s'affiche:

image.png

Essayons maintenant si le message est réussi. Ce sera comme suit.

image.png

Ça s'est bien passé.

À la fin

C'est tout pour cet article.

Merci pour votre relation.

Recommended Posts

Explication de Ruby on rails pour les débutants ⑦ ~ Implémentation 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 ⑤ ~ Modifier et supprimer la base de données ~
[Procédure 1 pour les débutants] Ruby on Rails: Construction d'un environnement de développement
[Ruby on rails] Implémentation d'une fonction similaire
Explication de Ruby on rails pour les débutants ④ ~ À propos des règles de dénomination et comment utiliser form_Tag ~
Implémentation de la fonction de connexion Ruby on Rails (Session)
Implémentation de la fonction de connexion Ruby on Rails (édition de devise)
Connaissance de base de Ruby on Rails
[Ruby on Rails] Implémentation de la fonction de commentaire
[Ruby on Rails] Introduction des données initiales
[Ruby on Rails] Suivez l'implémentation de la fonction: bidirectionnelle
[Ruby on Rails] Notation japonaise de l'erreur
Paramètres de validation pour la fonction de connexion Ruby on Rails
[Ruby on Rails] Jusqu'à l'introduction de RSpec
Recommandation de classe de service dans Ruby on Rails
[Ruby on Rails] Mémo d'introduction Select2 pour Webpacker
Ruby on Rails ~ Principes de base de MVC et du routeur ~
[Ruby on Rails] Un mémorandum de modèles de mise en page
Ruby on Rails Implémentation de la fonction d'envoi automatique de courrier
[Rails] Procédure de liaison de bases de données avec Ruby On Rails
Ruby on Rails Comment implémenter la saisie d'adresse automatique
[Ruby on Rails] Affichage individuel des messages d'erreur
Ruby on Rails élémentaire
Principes de base de Ruby on Rails
Association Ruby On Rails
[Ruby on Rails] Communication asynchrone de la fonction de publication, ajax
Essayez d'utiliser l'attribut de requête Ruby on Rails
[Ruby on Rails] Implémentation de la validation qui ne fonctionne que lorsque les conditions sont remplies
Implémentation de la suppression d'ajax dans Rails
Record d'apprentissage de Ruby on rails -2020.10.03
Création de portfolio Ruby on Rails
Record d'apprentissage Ruby on rails -2020.10.04
Record d'apprentissage de Ruby on rails -2020.10.09
Record d'apprentissage Ruby on rails-2020.10.07 ②
[Rails] Implémentation de la fonction de catégorie
(Pour les débutants) [Rails] Installer Devise
Record d'apprentissage Ruby on rails-2020.10.07 ①
Annuler la migration de Ruby on Rails
[Rails] Implémentation de la fonction tutoriel
Record d'apprentissage de Ruby on rails -2020.10.06
[Rails] Implémentation d'une fonction similaire
Résumé de la validation Ruby on Rails