Wie füge ich einer Activerecord-Sammlung eine Methode hinzu?

Ich möchte allen Sammlungen für ein bestimmtes Modell eine Methode hinzufügen. Angenommen, ich möchte die Methode hinzufügenmy_complicated_averaging_method zu den WeatherData Kollektionen:

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

Wie geht das am besten? Im Moment ist der einzige Weg, den ich gefunden habe, so:

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

Ist dies eine gute Möglichkeit, einer Sammlung eine Methode hinzuzufügen? Gibt es eine bessere / unterstützte Möglichkeit, dies zu tun?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage