2010-11-20 5 views
4

J'ai réglé: précision => 8,: échelle => 2 en décimal de la migration, mais quand je l'entrée 1923,423453 il est encore 1923,4. Ça devrait être 1923.42 ... pas vrai?RAILS précision et l'échelle des décimales ne fonctionne pas

t.decimal :value , :precision => 8, :scale => 2 , :default => 0 
+0

Comment cette colonne définie dans votre base de données? Correspond-il à vos paramètres de la migration? – Ariejan

+0

Yap, la migration même avec la console – wizztjh

+0

je double-vérifié et comparé à certains de mes propres migrations et votre code semble bien. Aucune idée pourquoi ça ne marche pas. Que se passe-t-il si vous appelez object.value.to_f, arrondit-il vraiment à une seule décimale? Avez-vous vérifié quelle est la valeur dans la base de données directement, via la ligne de commande mysql ou HeidiSQL ou quelque chose? –

Répondre

2

Apparemment, toutes les options sqlite sont supprimées lors de la migration.

Voici le billet phare visant étape 3.0.4 pour résoudre ce problème: https://rails.lighthouseapp.com/projects/8994/tickets/2872-patch-sqlite3-adapter-drops-decimal-columns-precision-scale-when-migration-tries-to-alter-them

+0

donc ce que je dois le faire mettre à niveau mes rails adaptateur sqlite? – wizztjh

+0

Je ne l'ai pas essayé le patch moi-même, mais en regardant les changements ciblés à inclure dans l'étape 3.0.4, vous auriez à mettre à jour le fichier sqlite_adapter.rb comme indiqué dans ce point essentiel (il est le contenu du patch le billet phare ci-dessus): https://gist.github.com/724939 – clemensp

+0

Yepp, il a été fusionné pour maîtriser w/ce PR: https://github.com/rails/rails/pull/3400 et inclus dans Rails depuis la version 3.2.0 –

Questions connexes