人が 2 人のプレーヤーとスコアを入力するインデックス ビューがあり、アプリは 2 人の勝者を返すことになっています。params ハッシュを介して入力を取得し、それを処理しようとしましたが、if で指定された最初の条件が常に true と評価されるようです。以下は、コントローラー アクションからのコードと、応答をレンダリングするビューです。
def find_winner
@player_1 = params[:player_1]
@player_2 = params[:player_2]
@set_1 = params[:set_1]
@set_2 = params[:set_2]
@set_3 = params[:set_3]
a = @set_1[0].to_i
b = @set_1[1].to_i
c = @set_2[0].to_i
d = @set_2[1].to_i
e = @set_3[0].to_i
f = @set_3[1].to_i
if ((a + c + e) > (b + d + f)) then
@winner = @player_1
elsif ((a + c + e) < (b + d + f)) then
@winner = @player_2
else
@winner = "winner"
end
end
および .erb テンプレートのコード:
<%= @player_1 %>
<%= @a %>
<%= @player_2 %>
<%= @set_1.class %>
<%= @set_2 %>
<%= @set_3 %>
<%= @b %>
<blockquote> the winner is <%= @winner %>
@winner は常に player_1 に評価されます