Estoy viendo un problema con esta solución. Si tengo una declaración como esta:
t.float :latitude, :limit => 30
todo parece genial: el esquema de la base de datos muestra que la columna está declarada como una doble. El problema es que schema.rb carece de cualquier: valor límite, por lo que cuando el esquema se clona en el entorno de prueba, la columna se convierte en un flotante en lugar de un doble. Las pruebas unitarias fallan porque no hay suficiente precisión en la columna.
Si nos fijamos en la documentación para ActiveRecord column definitions lo que se encuentra es la siguiente:
: Límite - Pide una longitud máxima de la columna. Este es el número de caracteres para: cadena y: columnas de texto y número de bytes para : columnas binarias y: enteras.
No dice nada sobre el tema de los flotadores. Del código se desprende que es un efecto secundario de cómo: se admite el límite de que esta solución funciona. Parece que hay un error en la generación de schema.rb o de lo contrario nunca fue pensado para ser usado de esta manera.
Me temo que la respuesta puede ser que el: tipo de datos decimal (que no me importa) es la solución totalmente compatible.
NO trabajo para mí, el límite se elimina y no está presente en mi schema.rb (Rails 4.0) – gamov