Чтобы геокод записал широту и долготу. Вам нужно добавить поля широты и долготы в таблицу БД. Допустим, вы используете таблицу users
.
Сначала добавьте миграцию
rails generate migration AddLatitudeLongitudeToUsers
Измените миграцию следующим образом.
class AddLatitudeLongitudeToUsers < ActiveRecord::Migration
def change
add_column :users, :latitude, :float
add_column :users, :longitude, :float
end
end
Запустите rake db:migrate
, чтобы сохранить изменения.
Добавьте следующую настройку геокода в пользовательскую модель
class User < ActiveRecord::Base
geocoded_by :current_sign_in_ip
after_validation :geocode, if: :current_sign_in_ip_changed?
end
Поскольку большинство из нас тестирует и разрабатывает приложение на нашем локальном компьютере, current_sign_in_ip будет записываться как «127.0.0.1» после входа в систему.
Вы можете проверить это из консоли рельсов rails c
u = User.find_by_email("[email protected]")
u.current_sign_in_ip
u.latitude
u.longitude
Чтобы посмотреть, работает геокодер или нет, давайте изменим ip вручную.
u.current_sign_in_ip = "199.182.122.98"
u.save
u.latitude
u.longitude
После входа в систему убедитесь, что в поле current_sign_in_ip отсутствует IP-запись. В противном случае поля широты и долготы будут нулевыми.
person
Tim
schedule
24.02.2015