0

我正在尝试按价格设置控制器返回的记录顺序。问题是有 3 种不同的价格选项,每条记录可能只使用 1 个价格、2 个价格或所有价格。所以我决定按均价设置头寸。为了获得平均价格,我预计将可用价格的总和除以可用价格计数。

目前我正在按 id 设置订单:

def category
    @manufacturers = Manufacturer.order("manufacturers.id ASC").where(:visible => true)
end

每条记录都有 :hp_price, :ch_price, :mp_price (所有每月支付价格),所以我想我想检查每个选项是否已设置,如果是,请将其添加到一个数组中,稍后我可以运行计算(也许这个不是最好的方法吗?)。

我对如何去做这件事有点困惑(我是 Rails 新手)。我可以在控制器中在线执行此操作吗?(如果是这样,我什至应该这样做吗?)

大意是:

def category
    @manufacturers = Manufacturer.order((manufacturers.hp_price+manufacturers.ch_price+manufacturers.mp_price)/3 ASC).where(:visible => true)
end

或者另一种可能性是为每条记录添加一个平均价格列,然后在创建记录时计算出来(不过,这对我来说感觉有点过头了)。

我想我想知道在这种情况下你会考虑什么最佳实践,就像我说的那样,我是新手,我担心如果我只是勉强应付的话,我会想出的解决方案会有点hacky!

4

1 回答 1

0

参考这样的列,它应该可以工作

def category
  @manufacturers = Manufacturer.order("(hp_price+ch_price+mp_price)/3 asc").where(:visible => true)
end
于 2013-09-07T12:09:36.943 回答