def x?
@x_query ||= expensive_way_to_calculate_x
end
çalışmaz.
Şu bildiğim en iyi yolu, birArray
içine değerini koymaktır:
def x?
return @x_query.first if @x_query.is_a?(Array)
@x_query = [expensive_way_to_calculate_x]
@x_query.first
end
Bunu yapmanın daha geleneksel bir ya da verimli bir yolu var mı?
GÜNCELLEME ben false
ilaveten nil
memoize istediğini fark - Bu https://rails.lighthouseapp.com/projects/8994/tickets/1830-railscachefetch-does-not-work-with-false-boolean-as-cached-value tüm yolu geri gider - özürlerimi bir başka tamamen doğru cevap verdi Andrew Marshall için. @x_query
değeri yerine nil
ise
Bu, nil'in ve null'ın tüm kavramının ne için olduğu. – meagar
Sorumu ilk defa doğru şekilde yapmadım çünkü - ben de nil memoize etmek istiyorum. –