我有一个要求,我需要根据销售的公司计算产品销售单位的平均值。
该方案是我们从旧数据库导入数据,并且在导入时我想根据新商品销售单位与现有商品的平均值之间的差异执行一些计算&#39 ;当他们在同一家公司出售时。
该模型名为Product,其属性为:
现在,我可以像这样计算模型中每家公司的平均值:
def self.average_interest(company)
where(company: company).average(:interest)
end
但现在我正在尝试对rake任务进行计算。
这是我提出的并且它无法正常工作:
@company = u.Company
#u.Company is the field name from the legacy database
def average_interest
Product.average(:interest, :conditions => ['company = ?', @company])
end
有什么想法吗?
谢谢!
编辑:
已从' @ company'更新了但是@company返回的值仍然不正确
答案 0 :(得分:0)
在rake任务中,您可以传入变量,如下所示:
def average_interest(company)
Product.average(:interest, :conditions => ['company = ?', company])
end
unentered_legacy_companies.each do |u|
average_interest(u)
end
答案 1 :(得分:-1)
只需在代码中将模型(Product)添加到查询中:
def average_interest(company)
Product.where(company: company).average(:interest)
end
然后我将它存储在一个变量中:
@company_average = average_interest(u.Company)