Ho un modello venditore che ha_molti articoli.Trattando nil come funzione di somma pari a zero
Desidero ottenere il prezzo di vendita totale di tutti gli articoli di un venditore.
In seller.rb devo
def total_item_cost
items.to_a.sum(&:sale_price)
end
Questo funziona bene se tutti gli elementi hanno un prezzo di vendita.
Tuttavia, se non sono ancora stati venduti, sale_price
è nullo e le interruzioni total_item_cost
.
Nella mia app, sale_price
può essere un numero zero o uno zero.
Nel mio metodo total_item_cost
, come posso considerare i valori nil
come zero?
Non sarebbe meglio definire SALE_PRICE come metodo e farla tornare sempre 0? Sarebbe la mia preferenza personale, perché conserva tutta la conoscenza del sale_price a cui appartiene, in modo da diffondersi su tutta la domanda sotto forma di "se sale_price.nil?". – berkes
In realtà è un'asta - un oggetto può essere "venduto" per 0 (il che significa che nessuno lo voleva). Quindi zero significa che non è stato ancora messo all'asta, e zero significa che è passato. Ho altre definizioni per tenere traccia di questo. –