Не уверен в моем синтаксисе Ruby здесь.
Я хочу определить метод, который я могу вызвать следующим образом: client.invoices.average_turnaround
. Поэтому мой метод average_turnaround
должен работать с коллекцией объектов ActiveRecord.
Вот мой код:
class Invoice < ActiveRecord::Base
...
def self.average_turnaround
return self.map(&:turnaround).inject(:+) / self.count
end
end
Итак, я пытаюсь найти сумму времени выполнения каждого счета, а затем разделить ее на общее количество счетов.
Ruby жалуется на то, что для Class
не определен метод map
. Я ожидал, что self
будет Array
.
Как мне написать метод, который работает с коллекцией Invoices
и использует функцию map
? Куда я иду не так?