我有一个要求,我需要创建一个范围,以显示unit_sold大于unit_sold平均值的项目,基于他们出售的公司。有一个产品型号。每个产品都具有以下属性:
这里给 unit_sold 公司
有很多公司。
此范围适用于计算所有项目的平均值。
scope :upward_trending, -> { where( "unit_sold > ?", average(:unit_sold)) }
现在我正在尝试创建一个范围,该范围仅显示平均值高于该公司unit_sold平均值的项目。
scope :upward_trending, ->(company) {where( "unit_sold > ?", where(company: company).average(:unit_sold)) }
我收到错误:
错误的参数数量(0表示1)
有人可以帮忙吗?谢谢!
使用Rails 4
所以这里的另一个问题是,如何将参数传递给ActiveAdmin中的作用域?
答案 0 :(得分:0)
尝试将公司作为参数传递给您的范围,例如:Model.upward_trending(<some_company>)