Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 零能';不能强制在映射中使用Fixnum_Ruby On Rails - Fatal编程技术网

Ruby on rails 零能';不能强制在映射中使用Fixnum

Ruby on rails 零能';不能强制在映射中使用Fixnum,ruby-on-rails,Ruby On Rails,我有一条线,做了所有的劳动。但是,如果该值为nil,则抛出: nil can't be coerced into Fixnum 有没有办法在值到达“Fixnum”之前确定它是否为nil?我在代码中尝试了几个不同的地方,但它总是抛出错误 <div><span>Total Labor: </span><%= @labors.map{|item| item.total_labor}.reduce(0, :+) %></div> 总劳动力:

我有一条线,做了所有的劳动。但是,如果该值为nil,则抛出:

nil can't be coerced into Fixnum
有没有办法在值到达“Fixnum”之前确定它是否为nil?我在代码中尝试了几个不同的地方,但它总是抛出错误

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

温柔一点,我仍然是一个傻瓜。

您可以使用
compact
从数组中删除nil值,然后将所有值相加:

或者,正如@ajedi32所说:

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

在调用
map
之后,您可能希望将调用移动到
compact
,以防其中一个项具有nil
total\u labor
属性。
    @labors.map{|item| item.total_labor}.compact.reduce(0, :+)