gmaps4rails Округление чисел с плавающей запятой в MySQL

у меня было приложение с gmaps4rails, работающее в разработке. На прошлой неделе я загружаю в производство с MySQL DB. Все работает круто, но при поиске адреса я пытаюсь отредактировать некоторые значения долготы и широты и вижу, что числа округляются, когда я пытаюсь отредактировать какое-то местоположение.

Я хочу знать, могу ли я сделать что-то вроде высоты или точности в значениях с плавающей запятой? Или возможна ли работа с десятичными знаками в этих двух полях с помощью gmaps4rails? и как я могу переместить значения, которые у меня есть прямо сейчас, в число с плавающей запятой в десятичные значения?

Спасибо за внимание.


person Stanmx    schedule 01.08.2013    source источник
comment
Возможно, у вас неверный тип столбца (int вместо decimal). пожалуйста, запустите это в консоли Rails и вставьте вывод в свой вопрос: Map.columns.map{|col| "#{col.name} is #{col.sql_type}"} (замените Map названием соответствующей модели)   -  person Benj    schedule 02.08.2013
comment
@BenjaminSinclaire вот: [id — INTEGER, category_id — целое число, имя — varchar (255), гарантия — логическое значение, адрес — varchar (255), телефон — varchar (255), расписание — varchar (255), электронная почта — varchar ( 255), сеть — это varchar(255), about — это текст, миссия — это текст, видение — это текст, created_at — это дата и время, updated_at — это дата и время, city_id — это целое число, широта — это число с плавающей запятой, долгота — это число с плавающей запятой, gmaps — это логическое значение]   -  person Stanmx    schedule 02.08.2013


Ответы (1)


Ваши поля БД являются плавающими, я почти уверен, что в MySQL они должны быть десятичными, чтобы они работали с gmaps4rails. Вы должны выполнить миграцию, чтобы изменить свои поля

Очень важно: если у вас есть данные, которые необходимо защитить, вы ДОЛЖНЫ сделать полный дамп базы данных перед выполнением переноса, я не могу гарантировать отсутствие риска для этой операции. Поскольку у вас есть ситуация на вашем рабочем сервере, в дополнение к дампу БД я бы посоветовал импортировать рабочую БД на ваш компьютер разработки и протестировать миграцию здесь.

Миграция рельсов должна выглядеть так:

change_column :my_table, :latitude, :decimal, precision: 10, scale: 8
change_column :my_table, :longitude, :decimal, precision: 11, scale: 8

Замените my_table именем вашей таблицы и при необходимости измените precision и scale.

person Benj    schedule 02.08.2013
comment
я применяю новый тип, но единственная проблема сейчас — это тип чисел преобразования долготы: от -116,988449 до -99,99999999. Любое решение для этого? - person Stanmx; 03.08.2013
comment
Мои извинения, в моем ответе была неправильная точность, я отредактировал его. - person Benj; 03.08.2013