Я вижу проблему с этим решением. Если у меня есть объявление, подобное этому:
t.float :latitude, :limit => 30
все выглядит отлично: схема базы данных показывает, что столбец объявлен как double. Проблема в том, что в schema.rb отсутствует любое: предельное значение, поэтому, когда схема клонируется в тестовую среду, столбец становится плавающим, а не двойным. Модульные тесты не пройдены, поскольку в столбце недостаточно точности.
Если вы посмотрите документы для ActiveRecord определения столбцов , то вы обнаружите следующее:
: limit - запрашивает максимальную длину столбца. Это число
символы для: строка и: текстовые столбцы и количество байтов для
: двоичные и: целочисленные столбцы.
В теме поплавков ничего не сказано. Из кода видно, что это побочный эффект того, как: поддерживается лимит, что это решение работает. Похоже, либо в генерации schema.rb есть ошибка, либо она никогда не предназначалась для такого использования.
Боюсь, что ответ может быть следующим: десятичный тип данных (который мне не нужен) является полностью поддерживаемым решением.