2013-02-22 1 views
1

У меня уже есть таблица адресов в моей базе данных и недавно наткнулся на драгоценный камень Geocoder (сладкий камень). Во всяком случае, я отредактировал мою модель, чтобы включить как столбцы широты, так и долготы, а также указать, что каждая запись должна быть geocoded_by, поэтому теперь я хотел бы просто геокодировать все адреса в таблице, которые теперь имеют нуль широт и долгот.Геокодер усиливает геокодирование записей в базе данных с помощью консоли Rails

Я думал, что понял это с консолью рельсы, просто выполнив команду:

Address.all.each{ |address| address.geocode } 

Это возвращает каждую запись с заполненной широтой и колонкой долготы, однако при проверке отдельных элементов после - у них все еще есть нильские широты и долготы (т.е. записи фактически не обновляются). Я думал, может быть address.geocode! будет работать, но это вернуло NoMethodError.

Это должен быть простым, но, кажется, я просто достаточно неопытен, чтобы не знать, что это такое ... aaaand с немного больше мастерить я понял это:

Решение

Address.all.each{ |address| address.update_attributes(latitude: address.geocode[0], longitude: address.geocode[1]) } 

ответ

5

Просто выполняя

Address.all.each{ |address| address.geocode } 

ли на самом деле не изменяет записи в базе данных.

Решение

, необходимый для использования update_attributes:

Address.all.each{ |address| address.update_attributes(latitude: address.geocode[0], longitude: address.geocode[1]) } 

Там может быть быстрее решением там встроен в геокодировщик, но это было быстрым решением проблемы, надеюсь, что это помогает другим!

 Смежные вопросы

  • Нет связанных вопросов^_^