我有一个包含TeamSeason
模型类的 Rails 应用程序。该类has_one
与Team
模型类有关联,并has_many
与另一个TeamSeason
称为opponents
. 我现在正在尝试编写一个传入 aTeam
并确定它的任何对手是否与它相关联的方法Team
。我写的方法是这样的:
def plays?(against_team)
total = opponents.count {|opponent| opponent.team == against_team}
return (total > 0)
end
该count
方法应该计算在我指定的块中产生真值的数组元素的数量。但是,它似乎总是返回数组的全长。就好像我指定的块总是产生一个真实的值,无论如何。
我添加了各种puts
调用来尝试找出我的逻辑出错的地方。以下是我的观察:
puts
当我在 count 方法旁边的块内添加任何调用时,我看不到这些语句的任何输出。似乎该块的内容从未被执行当我使用对手数组的方法和一个块插入一个额外的循环时
each
,我可以打印我的数组对象的值并确认它们是按预期计算的。我什至可以puts
评估opponent.team == against_team
并验证我编写的块在false
某些时候评估,因为它应该。
我在这里想念什么?