геокодер rails не может настраивать имена столбцов модели lat и lng

в мой город.рб добавил

geocoded_by :latitude  => :lat, :longitude => :lng

потом когда я позвоню

city = City.near(city_name).first

я получил

ActiveRecord::StatementInvalid: PG::UndefinedColumn: ERROR:  column cities.latitude does not exist

person ajbraus    schedule 07.08.2014    source источник


Ответы (1)


в city.rb параметры, переданные в метод geocoded_by, верны:

вам нужно сначала указать, если вы выполняете обычное геокодирование, означает перевод строкового адреса в широту и долготу, правильный код должен быть таким

geocoded_by :address, :latitude  => :lat, :longitude => :lon # ActiveRecord

Где адрес — это поле, в котором вы храните строку, которая будет искаться, или это может быть метод, который создает строку, которая будет использоваться для получения ее эквивалентной широты и долготы.

если вы хотите сделать наоборот, означает получить адрес для конкретных координат, тогда вы должны использовать:

reverse_geocoded_by :latitude, :longitude, :address => :location  # ActiveRecord
person Moustafa Sallam    schedule 08.08.2014
comment
Ни один из них не работает. Основная проблема в том, что мои столбцы БД: lat и :lng. Я не пытаюсь геокодировать что-либо от адреса до широты, у меня есть имя и широта. Я просто пытаюсь найти другие города в моей БД, которые находятся поблизости. - person ajbraus; 08.08.2014