Jak dodać metodę do kolekcji aktywnego rekordu?

Chciałbym dodać metodę do wszystkich kolekcji dla określonego modelu. Powiedzmy, że chcę dodać metodęmy_complicated_averaging_method do kolekcji WeatherData:

WeatherData.all.limit(3).my_complicated_averaging_method()
Station.first.weatherdata.my_complicated_averaging_method()

Jak najlepiej to zrobić? W tej chwili jedynym sposobem, jaki znalazłem, jest taki:

class WeatherData < ActiveRecord::Base
  def self.my_complicated_averaging_method
    weighted_average = 0
    @relation.each do |post|
      # do something complicated
      # weighted_average = 
    end
    return weighted_average
  end
end

Czy to dobry sposób na dodanie metody do kolekcji? Czy istnieje lepszy / obsługiwany sposób, aby to zrobić?

questionAnswers(3)

yourAnswerToTheQuestion