Короткий ответ на ваш вопрос: только с Ruby - вы не можете декодировать свой location
при работе на localhost.
Вы можете попробовать использовать драгоценный камень trifle для этого, но то, что он делает, это GeoIP country lookup. Поскольку вы хотите попробовать декодировать ваш localhost
- он не может просто работать.
Как это работает - есть база данных IP-адресов и ассоциированных городов. Это будет работать при развертывании приложения, и оно попытается расшифровать местоположение вашего посетителя.
Пример в их github довольно прост. После того, как ваш trifle
драгоценный камень set up правильно (это требует сервер Redis, и загрузка при условии, файл с предопределенным IP-адресов и связанных с ними городов):
trifle = Trifle.new(Redis.new)
trifle.find "223.255.128.0"
# => ["HK", "Hong Kong"]
# or you can try to play with it in controller
trifle.find request.remote_ip
Что вы можете сделать, чтобы определить местоположение при работе в locahost
:
Существует способ получить доступ к компьютеру для доступа к вашему приложению, используя возможности браузера. Существует отличная статья в tutsplus - http://code.tutsplus.com/tutorials/an-introduction-to-the-geolocation-api--cms-20071. Это будет работать с localhost
Существует довольно длинный код, поэтому я не скопирую его здесь, но объяснение очень хорошее. Вы можете легко реализовать свое решение на основе статьи, и местоположение очень точное. Ограничение для этого - браузер спрашивает, может ли он получить местоположение компьютера, и пользователь может не разрешить эту операцию. Невозможно форсировать его.
Надеюсь, что это поможет!
Удачи вам!
Почему тег Ruby? – steenslag
вам нужен GPS для этого – hek2mgl
это не нужно gps, и это действительно точно: http://www.w3schools.com/html/html5_geolocation.asp – NullVoxPopuli