我的 Rails 应用程序中有两个模型,用于跟踪不同商店的产品价格。它们在这里,但经过简化:
class Product < ActiveRecord::Base
attr_accessor :name
def latest_prices
prices.where('created_at >= ?', 30.days.ago)
end
def average_price
latest_prices.prices.map(&:value).sum / latest_prices.count
end
end
class Price < ActiveRecord::Base
attr_accessor :value, :shop_name, :created_at
belongs_to :product
end
我现在想找到Price
低于该产品当前平均值的所有对象。这基本上意味着所有Prices
在过去 30 天内创建的价格低于最近平均价格的产品Product
。
这可能吗?我正在使用 Postgres。
编辑:我应该提到-我想从Price
模型中实现此方法-也就是说,只能显示所有划算的价格,而不是所有划算的产品价格。
提前感谢您的帮助!