Ruby on rails 零能';不能强制在映射中使用Fixnum
我有一条线,做了所有的劳动。但是,如果该值为nil,则抛出: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 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
,以防其中一个项具有niltotal\u labor
属性。
@labors.map{|item| item.total_labor}.compact.reduce(0, :+)