J'ai une vue Index où une personne entre deux joueurs et un score et mon application est censée retourner le gagnant des deux. Je reçois l'entrée via le hachage params et j'essaie de le traiter mais il semble que la première condition fournie dans le if soit toujours vraie. Voici le code dans mon de mon action du contrôleur, plus le point de vue qui rend la réponse:problème avec "si" condition
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
et le code du modèle .erb:
<%= @player_1 %>
<%= @a %>
<%= @player_2 %>
<%= @set_1.class %>
<%= @set_2 %>
<%= @set_3 %>
<%= @b %>
<blockquote> the winner is <%= @winner %>
@winner évalue toujours player_1
BTW, vous n'avez pas besoin 'then' mots-clés ici. Vous pouvez les laisser tomber en toute sécurité. –
Je suggère qu'il y a un problème avec vos données. Autrement dit, vous n'envoyez jamais de paramètres avec lesquels un deuxième joueur devrait gagner. Votre code me semble correct. –
Paramètres: {"utf8" => "✓", "authenticity_token" => "SJ1s58B0js + Tbb2LOJ99stlWSUQEk4tLmI3VxzUboYI =", "player_1" => "perdant", "player_2" => "gagnant", "set_1" => "3 , 6 "," set_2 "=>" 2,6 "," set_3 "=>" 0,0 "," commit "=>" obtenir le gagnant "} le serveur envoie le dessus dans le corps de la requête. et quand je les évalue comme vous voyez dans le code de .erb ils contiennent des valeurs. – Lym