2

我有一条可以完成所有工作的生产线。但是,如果值为 nil,则会抛出:

nil can't be coerced into Fixnum

有没有办法在它到达“Fixnum”之前确定该值是否为零?我在代码中尝试了几个不同的地方,但它不断抛出错误。

<div><span>Total Labor: </span><%= @labors.map{|item| item.total_labor}.reduce(0, :+) %></div>

温柔点我还是菜鸟..

4

1 回答 1

1

您可以使用compact从数组中删除 nil 值,然后将它们全部相加:

http://www.ruby-doc.org/core-2.0/Array.html#method-i-compact

@labors.compact.map{|item| item.total_labor}.reduce(0, :+)

或者,正如@ajedi32 所说:

    @labors.map{|item| item.total_labor}.compact.reduce(0, :+)
于 2013-07-22T20:44:22.887 回答