Wie kann ich mir eine Methode merken, die in Ruby true, false oder nil zurückgibt?
Offensichtlich||=
wird nicht funktionieren
def x?
@x_query ||= expensive_way_to_calculate_x
end
denn wenn es sich herausstelltfalse
odernil
, dannexpensive_way_to_calculate_x
wird immer wieder laufen.
Derzeit ist der beste Weg, den ich kenne, den Wert in eineArray
:
def x?
return @x_query.first if @x_query.is_a?(Array)
@x_query = [expensive_way_to_calculate_x]
@x_query.first
end
Gibt es einen konventionelleren oder effizienteren Weg, dies zu tun?
AKTUALISIEREN Mir wurde klar, dass ich es mir merken wolltenil
zusätzlich zufalse
- Das geht den ganzen Weg zurück zuhttps://rails.lighthouseapp.com/projects/8994/tickets/1830-railscachefetch-does-not-work-with-false-boolean-as-cached-value - Ich entschuldige mich beiAndrew Marshall wer gab eine ansonsten völlig richtige Antwort.