Schienen: Wie kann ich überprüfen, ob eine Spalte einen Wert?
Wie kann ich dies erreichen?
<% for agent in @broker.agents %>
...
<% if agent.cell %><span class="cell-number">Cell: <%= agent.cell %></span><% end %>
...
<% end %>
Möchte ich testen, um zu sehen, ob der agent eine Zelle Nummer, und wenn dem so ist, anzuzeigen, was in die bedingte. Was ich derzeit nicht zu funktionieren scheint; es zeigt nur "Handy: ".
Gedanken?
InformationsquelleAutor neezer | 2008-11-19
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist, was Sie gefragt haben:
Die Zelle? die Methode funktioniert unabhängig davon, ob die Zelle ist gleich null oder eine leere Zeichenfolge. Schienen Hinzugefügt, die ähnliche Funktionen für alle ActiveRecord-Attribute. Dies sieht ein wenig schöner:
Dem Fragezeichen und Doppelpunkt form einer schnellen "wenn ? dann : else" - Anweisung. Es gibt zwei Fragezeichen in dem code da oben ist ein Teil der Methode, der name der Zelle? und der andere Teil der if/then/else-Konstruktion.
<%= agent.cell || "none given" %>
InformationsquelleAutor Adrian Dunston
Gebe ich eine sehr ausführliche Antwort auf diese Frage "Wie kann ich überprüfen, ob eine Spalte einen Wert?".
Zunächst, es ist wichtig zu beachten, dass ein Attribut kann vier Arten von Werten.
Hier ist der detail-Verhalten aller Anwesenden Methoden(Ruby 2.2.2), konnte in diesem Fall verwendet werden.
Erste Methode:
.empty?
Für null Wert => Wirft eine exception
Für leer Wert ich.e "", eine leere Zeichenfolge mit keine Leerzeichen
leer string mit Leerzeichen " ".
Wert vorhanden in der Datenbank habe ich.e a nicht-leeren string.
Zweite Methode:
.nil?
null Wert ich.e "nil" in der Datenbank gespeichert
leer Wert ich.e "", eine leere Zeichenfolge mit keine Leerzeichen
leer string mit Leerzeichen " ".
Wert vorhanden in der Datenbank habe ich.e a nicht-leeren string.
Dritte Methode:
.blank?
null Wert ich.e "nil" in der Datenbank gespeichert
leer Wert ich.e "", eine leere Zeichenfolge mit keine Leerzeichen
leer string mit Leerzeichen " ".
Wert vorhanden in der Datenbank habe ich.e a nicht-leeren string.
Vierte Methode:
.present?
null Wert ich.e "nil" in der Datenbank gespeichert
leer Wert ich.e "", eine leere Zeichenfolge mit keine Leerzeichen
leer string mit Leerzeichen " ".
Wert vorhanden in der Datenbank habe ich.e a nicht-leeren string.
Können Sie entweder die vier je nach der situation, die Sie Gesicht.
Dank
InformationsquelleAutor techdreams
Es funktioniert.
Ich verwende es sei denn, es sei denn, agent.Zelle.leer, weil doppelte Verneinungen sind genial.
Sie können auch
if agent.cell.present?
#vorhanden? gibt das Gegenteil von #leer?InformationsquelleAutor neezer
agent.Zelle? scheint die gleiche Arbeit als agent.Zelle.leer? in RoR.
InformationsquelleAutor Farrel
Finde ich die Verwendung von #jeder, der
unless
, undcell.empty?
werden besser lesbar und einfacher zu verstehen auf den ersten Blick.InformationsquelleAutor Sarah Vessels