Ich werde darüber schreiben, wie die Fehlermeldung angezeigt wird. Ich werde auch kurz über Rendering, Redirect_to und Flash schreiben, die häufig bei der Ausgabe von Nachrichten mit Rails verwendet werden.
Zeigen Sie die folgende Fehlermeldung an, wenn der Eingabewert des Formulars fehlerhaft ist
login_controller.rb
@error_txt = '* Die Eingabe ist fehlerhaft oder nicht registriert.'
render :new
Setzen Sie die Instanzvariable @error_txt auf eine Fehlermeldung und geben Sie an, dass beim Rendern die Vorlage neu angezeigt werden soll.
new.html.slim
- if @error_txt
p.error
= @error_txt
Auf der Vorlagenseite wird das Vorhandensein des Werts von @error_txt der Instanzvariablen überprüft und @error_txt wird angezeigt, falls vorhanden.
Rendern ist eine Methode zum Festlegen und Anzeigen (Rendern) einer Vorlage. Es kann angezeigt werden, ohne den Bildschirm zu ändern.
Ähnlich wie beim Rendern ist redirect_to eine Methode zum Angeben und Anzeigen einer Seite. Beim Rendern wird die angegebene Vorlage ohne Bildschirmübergang angezeigt Die Methode redirect_to ist eine Methode zum Umleiten und weist den Browser an, die Anforderung erneut anzugeben, indem die URL angegeben wird. Als Antwort auf diesen Befehl sendet der Browser eine weitere Anfrage für die angegebene URL an den Server. Wenn Sie die Anforderung nicht erneut senden müssen, da die Interaktion und Verarbeitung zwischen dem Browser und dem Server zunimmt, ist es besser, Render zu verwenden.
Dieses Mal verwende ich Rendern, weil ich nur eine Fehlermeldung für den Eingabeinhalt des Formulars anzeigen und nicht umleiten möchte.
Wenn Sie in die Nachrichtenanzeige auf Schienen schauen, finden Sie viele Artikel über Flash. Flash ist eine der Funktionen, die die Sitzung verwenden, und eine Methode zum Anzeigen einer Nachricht auf dem Bildschirm. Mit Flash festgelegte Nachrichten werden in der Sitzung gespeichert und bleiben auch dann erhalten, wenn sie umgeleitet werden. Daher wird die Methode redirect_to häufig zusammen verwendet.
Dieses Mal verwende ich Render, ich habe Instanzvariablen anstelle von Flash verwendet, da es keine Umleitung gibt und ich den Wert nicht in der Sitzung behalten muss.
Recommended Posts