2

私はすべての労働の合計を行うラインを持っています。ただし、値が nil の場合は、次のものがスローされます。

nil can't be coerced into Fixnum

「Fixnum」に到達する前に値が nil かどうかを判断する方法はありますか? コード内のいくつかの異なる場所を試しましたが、エラーがスローされ続けます。

<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 に答える