Test si la chaîne est un nombre dans Ruby on Rails

J'ai de la suite dans mon contrôleur d'application:

def is_number?(object)
  true if Float(object) rescue false
end

et de la condition suivante dans mon controller:

if mystring.is_number?

end

L'état est en train de jeter un undefined method erreur. Je devine que j'ai défini is_number au mauvais endroit...?

  • Je sais que beaucoup de gens sont là à cause de codeschool de Rails pour les Zombies de Test de la classe. Juste attendre pour lui de garder en expliquant. Les tests ne sont pas censés passer --- son OK pour avez-vous test échoue dans l'erreur, vous pouvez toujours patch rails à inventer des méthodes telles que l'auto.is_number?
  • La accepté de répondre échoue sur des cas comme "1,000" et est un 39x plus lent que d'utiliser une regex approche. Voir ma réponse ci-dessous.