Diese Zeit ist eine Fortsetzung des vorherigen Artikels.
Bitte lesen Sie den vorherigen Artikel, wenn Sie möchten.
Dieses Mal werde ich über Flash zusammenfassen.
Erklärung von Ruby on Rails für Anfänger ①
Erklärung von Ruby on Rails für Anfänger ② ~ Erstellen von Links ~
Erklärung von Ruby on Rails für Anfänger ③ ~ Erstellen einer Datenbank ~
Erklärung von Ruby on Rails für Anfänger ④ ~ Verwendung von Namensregeln und form_Tag ~
Erklärung von Ruby on Rails für Anfänger ⑤ ~ Datenbank bearbeiten und löschen ~
Erklärung von Ruby on Rails für Anfänger ⑥ ~ Erstellung der Validierung ~
Ich habe es auf Twitter versucht, um ein konkretes Beispiel zu finden.
Der Teil, in dem der eingegebene Benutzername ~ ist, ist der Blitz.
Der Blitz wird nur einmal auf der Seite angezeigt, und der Blitz verschwindet, wenn die Seite aktualisiert oder auf eine andere Seite verschoben wird.
Lassen Sie uns diesen Flash implementieren.
Eine spezielle Variable, Blitz, wird zur Anzeige von Blitzen auf Schienen bereitgestellt.
Sie können es in Ihrer Ansichtsdatei verwenden, indem Sie der Variablen "flash [: note]" in der Aktion eine Zeichenfolge zuweisen. Der Blitz soll nach seiner Verwendung automatisch gelöscht werden.
Da Flash häufig an vielen Orten verwendet wird, ist es auch praktisch, es in der Datei application.html.erb
zu verwenden.
Was in der Datei application.html.erb
geschrieben ist, wird allen Ansichtsdateien gemeinsam angezeigt.
Geben Sie Folgendes in die Datei application.html.erb unter dem Ordner views >> layouts ein, damit der Flash angezeigt werden kann.
application.html.erb
<% if flash[:notice]%>
<div class="flash">
<%= flash[:notice]%>
</div>
<% end %>
Jetzt können Sie den Blitz sehen, falls vorhanden.
Wie auch immer, lassen Sie uns auch CSS einstellen.
application.css
.flash {
background-color: brown;
color: white;
}
Schreiben wir den Posts-Controller wie folgt um und weisen die Fehlermeldung flash [: Notice]
zu.
posts_controller.rb
def create
post = Post.new(content: params[:content])
@content = params[:content]
if post.save
flash[:notice] = "Erfolgreich gepostet"
redirect_to("/posts/all")
else
flash[:notice] = post.errors.full_messages[0]
render("posts/new")
end
end
Wenn der Teil "post.save" fehlschlägt, werden die Fehlermeldungen als Liste in "post.errors.full_messages" gespeichert, sodass der erste Wert in "flash [: Notice]" gespeichert wird. .. Wenn der Beitrag erfolgreich ist, speichern Sie diese Tatsache in "flash [: Notice]".
Sie haben jetzt den Flash implementiert.
Probieren wir es aus.
Öffnen wir die folgende Datei new.html.erb. Darüber hinaus lautet die Validierung wie folgt.
new.html.erb
<%= form_tag("/posts/create") do %>
<textarea name="content" cols="30" rows="10"><%= @content%></textarea>
<input type="submit" value="Senden">
<% end %>
post.rb
class Post < ApplicationRecord
validates :content, {presence: true}
validates :content, {length: {maximum: 20}}
end
Drücken Sie als Test auf Senden, ohne einen Wert einzugeben. Es wird validiert und die Fehlermeldung in flash [: Notice]
gespeichert.
Geben Sie als Nächstes 20 Zeichen oder mehr ein und drücken Sie Senden. Die folgende Fehlermeldung wird angezeigt:
Versuchen wir nun, ob der Beitrag erfolgreich ist. Es wird wie folgt sein.
Es ging gut.
Das ist alles für diesen Artikel.
Vielen Dank für Ihre Beziehung.
Recommended Posts