TeamSeasonモデルクラスを含むRailsアプリがあります。このクラスにはhas_one、Teamモデルクラスとの関連付け、およびと呼ばれるhas_many別のクラスとの関連付けがあります。私は今、を渡して、その対戦相手のいずれかがそれに関連付けられているかどうかを判断するメソッドを作成しようとしています。私が書いたメソッドは次のようになります。TeamSeasonopponentsTeamTeam
def plays?(against_team)
total = opponents.count {|opponent| opponent.team == against_team}
return (total > 0)
end
このcountメソッドは、指定したブロックで真の値を生成する配列要素の数をカウントする必要があります。ただし、常に配列の全長を返しているようです。それは、私が指定したブロックが、何があっても常に真の値を生成するかのようです。
putsロジックがどこで間違っているのかを理解するために、さまざまな呼び出しを追加しました。これが私の観察です:
countメソッドの横のブロック内に呼び出しを追加する
putsと、それらのステートメントの出力が表示されません。ブロックの内容が実行されていないようです対戦相手の配列の
eachメソッドとブロックを使用して追加のループを挿入すると、配列オブジェクトの値を出力して、期待どおりに評価されていることを確認できます。私が書いたブロックputsの値をopponent.team == against_team確認し、評価することができる場合もありますfalse。
ここで何が欠けていますか?