Używam payments.sum(&:price)
w mojej aplikacji Rails (4.1.2). Odkąd aktualizowany od Ruby 1.9.3 do 2.1.2, otrzymuję te błędy:suma (&: x) już nie działa
wrong number of arguments (1 for 2..3)
te działają wariantach:
payments.map(&:price).sum
payments.to_a.sum(&:price)
mam do przerobienia mojego kodu lub mogę coś przeoczyć? Dziękujemy!
Co to są "płatności"? Rails ma dwie różne metody "sum": [Zmienna # suma] (http://apidock.com/rails/Enumerable/sum) i [ActiveRecord :: Relation # sum] (http://api.rubyonrails.org/classes /ActiveRecord/Calculations.html#method-i-sum). Pierwszy z nich przyjmuje blok (dlatego działa '&', operator 'to_proc'; drugi nie. Niezależnie od tego, jestem pewien, że uaktualnienie Ruby z wersji 1.9.3 do 2.1 jest czerwonym śledziem. Zachowanie "&" nie zmieniło się między tymi wersjami. –