Comment dois-je faire de comparaison de Chaîne en Ruby?

J'utilise le code suivant pour comparer les cordes, mais il prend toujours moi à la else. Pourquoi?

print("Enter your state abbreviation: ")
state_abbreviation = gets
if state_abbreviation.upcase == "NC"
  puts("North Carolina")
elsif state_abbreviation.upcase == "SC"
  puts("Sourth Carolina")
elsif state_abbreviation.upcase == "GA"
  puts("Georgia")
elsif state_abbreviation.upcase == "FL"
  puts("Florida")
elsif state_abbreviation.upcase == "AL"
  puts("Alabama")
else
  puts("You have enter wrong abbreviation")
end

J'ai aussi essayé .eql?("string") mais j'obtiens le même résultat.

Je ne sais vraiment pas Ruby très bien, mais pourquoi cette difficile et fragile, si-si-si-autre structure? Utiliser une HashMap et, si vous n'obtenez rien en retour, de définir le message d'erreur. Cela permettrait également d'aider les newline problème tout le monde sortit ci-dessous.
1. Je suis très nouveau à ruby donc même ne sais pas si HashMP sortie? 2. Je n'aime pas lorsqu'!

OriginalL'auteur itsaboutcode | 2010-01-06