我有一个从数据库调用创建的赋值对象数组:
@assignments = @player.assignments
我想用这个数他们:
@assignments.count {|x| x.sets == 0.0}
这应该计算0.0集的工作分配数。但是,这始终返回@assignment中的对象总数。我查过了
@assignments.each {|x| puts x.sets == 0.0}
在所有情况下都不会返回true。
有线索吗?
编辑>
@assignments.map(&:sets)
=> [35.0, 120.0, 0.0, 0.0, 0.0, 0.0, 0.0, 12.0, 75.0, 0.0, 0.0, 0.0, 0.0]
最佳答案
很可能,@assignments
不是一个Array
实例,但是ActiveRecord::Relation
,请尝试@assignments.class
。如果是这样,count
方法无法按预期工作,它将返回记录数。
尝试
@assignments.where(sets: 0).count
或偶数(先转换为数组)
@assignments.to_a.count {|x| x.sets == 0.0}
关于ruby-on-rails - 带块的Array.count无法返回正确答案,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18309153/