TeamSeason
モデルクラスを含むRailsアプリがあります。このクラスにはhas_one
、Team
モデルクラスとの関連付け、およびと呼ばれるhas_many
別のクラスとの関連付けがあります。私は今、を渡して、その対戦相手のいずれかがそれに関連付けられているかどうかを判断するメソッドを作成しようとしています。私が書いたメソッドは次のようになります。TeamSeason
opponents
Team
Team
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
。
ここで何が欠けていますか?