我的卖家模型有许多件物品(_M)。
我想知道卖家所有物品的总销售。
在seller.rb中我有
def total_item_cost
items.to_a.sum(&:sale_price)
end
如果所有项目都有一个销售价格,这就可以了。
然而,如果它们还没有被卖出,sale_price
为零,total_item_cost
中断。
在我的应用程序中,sale_price
可以是nil,也可以是0。
在我的total_item_cost
方法中,如何将nil
值视为零?
我的卖家模型有许多件物品(_M)。
我想知道卖家所有物品的总销售。
在seller.rb中我有
def total_item_cost
items.to_a.sum(&:sale_price)
end
如果所有项目都有一个销售价格,这就可以了。
然而,如果它们还没有被卖出,sale_price
为零,total_item_cost
中断。
在我的应用程序中,sale_price
可以是nil,也可以是0。
在我的total_item_cost
方法中,如何将nil
值视为零?
5条答案
按热度按时间2w3kk1z51#
或
moiiocjp2#
其中一个办法是:
像
#to_f
和#to_i
这样的方法会将nil
转换为0
。disbfnqx3#
拒绝零值。
items.to_a.reject{|x| x.sales_price.nil?}.sum(&:sale_price)
jv4diomz4#
假设sales_price是数据库中的一列:
u0sqgete5#