Jas*_*rga 19 ruby ruby-on-rails ruby-on-rails-3
我有一个卖家模型has_many项目.
我想得到所有卖家物品的总销售价格.
在seller.rb我有
def total_item_cost 
  items.to_a.sum(&:sale_price)
end
如果所有商品都有售价,这样可以正常使用.
但是,如果它们尚未售出,sale_price则为零和total_item_cost休息.
在我的应用程序中,sale_price可以是零或零.
在我的total_item_cost方法中,我如何将nil值视为零?
dbe*_*hur 50
items.map(&:sale_price).compact.sum
要么
items.map(&:sale_price).sum(&:to_i)
Dig*_*oss 36
一种方法是:
items.to_a.sum { |e| e.sale_price.to_i } # or to_f, whatever you are using
方法,如#to_f和#to_i将转向nil成0.