[RUBY] [Rails] Afficher le message d'erreur - Différence entre render et redirect_to, flash-

J'écrirai sur la façon d'afficher le message d'erreur. J'écrirai également brièvement sur render, redirect_to et flash, qui sont souvent utilisés lors de la sortie de messages avec Rails.

Ce que vous souhaitez mettre en œuvre

Afficher le message d'erreur suivant en cas d'erreur dans la valeur d'entrée du formulaire image.png

Code implémenté

login_controller.rb



    @error_txt = '* Il y a une erreur dans l'entrée ou elle n'est pas enregistrée.'
    render :new

Définissez la variable d'instance @error_txt sur un message d'erreur et spécifiez que le rendu doit afficher le nouveau modèle.

new.html.slim



    - if @error_txt
        p.error
            = @error_txt

Du côté du modèle, l'existence de la valeur de @error_txt de la variable d'instance est vérifiée, et @error_txt est affiché s'il y en a.

Qu'est-ce que le rendu

render est une méthode pour spécifier un modèle et l'afficher (le rendre). Il peut être affiché sans changer d'écran.

Différence de redirect_to

Semblable à render, redirect_to est une méthode pour spécifier et afficher une page. Pendant que le rendu affiche le modèle spécifié sans transition d'écran La méthode redirect_to est une méthode de redirection et demande au navigateur de renvoyer la demande en spécifiant l'URL. En réponse à cette commande, le navigateur envoie une autre requête au serveur pour l'URL spécifiée. Si vous n'avez pas besoin de renvoyer la demande car l'interaction et le traitement entre le navigateur et le serveur vont augmenter, il est préférable d'utiliser le rendu.

Cette fois, j'utilise le rendu car je veux juste afficher un message d'erreur pour le contenu d'entrée du formulaire et je ne veux pas rediriger.

Qu'est-ce que le flash

Si vous regardez l'affichage des messages sur les rails, vous trouverez de nombreux articles sur le flash. flash est l'une des fonctions utilisant la session et est une méthode pour afficher un message à l'écran. Le message défini par flash est enregistré dans la session et est conservé même s'il est redirigé, de sorte que la méthode redirect_to est souvent utilisée ensemble.

Cette fois, j'utilise render, j'ai utilisé des variables d'instance au lieu de flash car il n'y a pas de redirection et je n'ai pas besoin de conserver la valeur dans la session.

Résumé

Recommended Posts

[Rails] Afficher le message d'erreur - Différence entre render et redirect_to, flash-
[rails] Différence entre redirect_to et render
[Rails] Différence entre redirect_to et render [Débutant]
Différence entre redirect_to et render
Différence entre redirect_to et render
Différence entre render et redirect_to
Différence entre render et redirect_to
[Rails] Différentes différences entre redirect_to et méthode de rendu et méthode de sortie de la méthode de rendu
Les rails rendent redirect_to
[Rails] Quelle est la différence entre la redirection et le rendu?
[Rails] Afficher les messages d'erreur du formulaire de manière asynchrone
[Rails] Différence entre find et find_by
Utilisez redirect_to et effectuez un rendu correctement
[Rails] Pourquoi est-il rendu si la sauvegarde réussit et que redirect_to échoue?
[Rails] Comment afficher les messages d'erreur individuellement
[erreur de rails] Erreur d'installation md5.bundle et mysql
[Ruby on Rails] Ajoutez et supprimez des balises et affichez les messages (succès / erreur) en utilisant ajax.
[Rails / Active Record] À propos de la différence entre créer et créer!
Critères pour utiliser correctement render et redirect_to
Différence entre le membre et la collection de rails routes.rb
[Rails] Comment émettre des messages de réussite et d'erreur
[Rails] Différence entre la méthode de création et la méthode nouvelle + sauvegarde
[Ruby on Rails] Affichage individuel des messages d'erreur