我有一个从数据库调用创建的Assignment对象数组:
@assignments = @player.assignments
我想用这个数字来计数:
@assignments.count {|x| x.sets == 0.0}
这应该计算0.0集合的分配数.但是,这总是返回@assignments中的对象总数.我已经检查了
@assignments.each {|x| puts x.sets == 0.0}
在所有情况下都不会恢复正确.
任何线索?
编辑>
@assignments.map(&:sets) => [35.0,120.0,0.0,12.0,75.0,0.0]
解决方法
最有可能的是@assignments不是Array实例,而是ActiveRecord :: Relation,尝试@ assignment.class.如果是这样,count方法不按预期工作,它返回记录数.
尝试
@assignments.where(sets: 0).count
甚至(先转换为阵列)
@assignments.all.count {|x| x.sets == 0.0}