Convertir la saisie de l'Utilisateur en entier

Donc j'ai un formulaire où l'utilisateur peut entrer un prix. Je suis en train de faire un before_validation qui normalise les données de détourage, le $ si l'utilisateur met.

before_validation do
 unless self.price.blank? then self.price= self.price.to_s.gsub(/\D/, '').to_i end
end

Si les entrées de l'utilisateur $50 Ce code me donne 0. Si les entrées de l'utilisateur 50$ ce code me donne 50. Je pense que depuis le type de données integer, que rails est en cours d'exécution .to_i avant mon before_validation et coupant tout ce qui est après le $. Ce code fonctionne très bien si le type de données est une chaîne de caractères.

Que quelqu'un a une solution qui me permettra de garder le type de données entier?

OriginalL'auteur Robert | 2012-03-13