Io uso payments.sum(&:price)
nella mia app Rails (4.1.2). da quando ho aggiornato da Ruby 1.9.3 a 2.1.2, ottengo questi errori:sum (&: x) non funziona più
wrong number of arguments (1 for 2..3)
queste varianti lavoro:
payments.map(&:price).sum
payments.to_a.sum(&:price)
Devo riscrivere il mio codice o mi sono perso qualcosa? Grazie!
Che cosa significa "pagamenti"? Rails ha due diversi metodi 'sum': [Enumerable # sum] (http://apidock.com/rails/Enumerable/sum) e [ActiveRecord :: Relation # sum] (http://api.rubyonrails.org/classes /ActiveRecord/Calculations.html#method-i-sum). Il primo prende un blocco (che è il motivo per cui '&', l'operatore 'to_proc', funziona); il secondo no. Indipendentemente da ciò, sono abbastanza sicuro che l'aggiornamento di Ruby da 1.9.3 a 2.1 sia un'aringa rossa. Il comportamento di '&' non è cambiato tra quelle versioni. –