Je vois un problème avec cette solution. Si j'ai une déclaration comme ceci:
t.float :latitude, :limit => 30
Tout semble très bien: le schéma de la base de données montre que la colonne est déclarée comme un double. Le problème est que schema.rb n'a aucune valeur limite, donc lorsque le schéma est cloné dans l'environnement de test, la colonne devient un flottant plutôt qu'un double. Les tests unitaires échouent car la précision de la colonne est insuffisante.
Si vous regardez la documentation pour ActiveRecord column definitions ce que vous trouvez est ceci:
: limite - demande une longueur maximale de la colonne. Nombre de caractères pour: chaîne et: colonnes de texte et nombre d'octets pour : colonnes binaires et: entiers.
Il est silencieux sur le sujet des flottants. Il apparaît du code que c'est un effet secondaire de comment: la limite est supportée que cette solution fonctionne. Il semble qu'il y ait un bug dans la génération de schema.rb ou bien il n'a jamais été prévu d'être utilisé de cette façon. Je crains que la réponse puisse être que le type de données décimal (que je ne m'inquiète pas) est la solution entièrement supportée.
Does not travailler pour moi, la limite est effacée et pas présent dans mon schéma.rb (Rails 4.0) – gamov