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.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage