Ich möchte eine Textzeile nur anzeigen, wenn ein Objekt namens @foo gesetzt ist. Aus meiner Sicht versuche ich, etwas wie folgt aus:Wie überprüft man, ob ein Objekt in einer Ansicht in Ruby null ist?
<% if [email protected]_record? || [email protected]? %>
Foo is not a new record or nil
<% end %>
Aber dies nicht gelingt, Rückkehr You have a nil object when you didn't expect it!
Ich bin ziemlich sicher, dies wegen der new_record?
Verfahren geschieht. Wie überprüfe ich, ob etwas nicht ein neuer Datensatz oder Null ist, ohne einen Fehler zu verursachen? In PHP würde es durch die Frage if(!empty($foo))
erreicht werden, aber selbst die empty?
Methode in Schienen verursacht den gleichen Fehler zurückgegeben werden.
Irgendwelche Ideen?
höchst intuitiv! Danke! –
Mit DeMorgans Gesetz könntest du es auch ein bisschen schön machen: 'es sei denn @ foo.nil? || @ foo.new_record ?; setzt 'Hallo!'; end; ' –
'! foo.nil? 'lässt mein Gehirn bluten, weil es einfach durch' foo' ersetzt werden kann. Dies ist ein sehr einfaches und gebräuchliches Ruby-Idiom: 'if @foo &&! @ Foo.new_record?' –