Geokit Gem: неинициализированная константа

поэтому я просто хочу извлечь координаты долготы/широты из обычного адреса (строки). Я обратился к документации по гему geokit и сделал именно то, что было задокументировано, но продолжаю получать эту ошибку: «NameError: неинициализированная константа Geokit::Geocoders::OpenSSL»

Я добавил «geokit» в gemfile и это:

require 'rubygems'
require 'geokit'




def get_coordinates
  @a = Geokit::Geocoders::GoogleGeocoder.geocode '140 Market St, San Francisco, CA'
  @a.ll
end

Я также пытался добавить это раньше, но безрезультатно. Geokit::Geocoders::GoogleGeocoder.api_key = api_key

Мне просто нужны координаты, если это не жизнеспособное решение, может кто-нибудь порекомендовать другой геокодер. Я пробовал railscasts, но тоже не смог заставить это работать. Любая помощь будет принята с благодарностью, спасибо!


person ChrisPalmer    schedule 19.06.2014    source источник
comment
Привет, я сопровождаю geokit. У нас есть тесты на ruby ​​1.8 - 2.1. Мне интересно, если у вас каким-то образом не было OpenSSL, когда ruby ​​был скомпилирован, или ruby ​​не был скомпилирован с openssl. Не могли бы вы помочь мне, сообщив вывод двух команд: openssl version и ruby ​​-ropenssl -e require 'openssl'; OpenSSL Также было бы полезно узнать вашу операционную систему и версию ruby, чтобы я мог убедиться, что даю вам правильные команды отладки и т. д.   -  person Michael Noack    schedule 20.06.2014
comment
Мне пришлось явно require 'openssl' (проверено на ruby ​​​​2.0.0), чтобы эта ошибка исчезла (например, @Anastasia ответила BTW).   -  person nathanvda    schedule 24.09.2014
comment
У меня та же проблема, что и у ОП. Я на Mac, использую Mavericks и Ruby 2.1. Когда я запускаю эти команды в irb, геокит работает, если мне сначала требуется openssl. Однако внутри моего приложения Padrino я получаю то же сообщение об ошибке (неинициализированная константа Geokit), хотя я также явно требую там openssl. Geokit находится в моем Gemfile, он был установлен, а также отображается в разделе «Внешние библиотеки» в моем приложении Padrino. Версия openssl дает: OpenSSL 0.9.8zc 15 октября 201. Когда я запускаю команду ruby, я не получаю ответа, просто возвращаюсь к приглашению.   -  person Dave Munger    schedule 28.01.2015
comment
Ладно, моя ошибка. Обычно мастер (демон heroku padrino) принимает изменения без перезапуска, но в этом случае нет. Хотя работает после перезагрузки.   -  person Dave Munger    schedule 28.01.2015


Ответы (2)


Добавьте require 'openssl' перед require 'geokit'.

Geokit не включает автоматически требуемый гем OpenSSL.

person Anastasia Burchalova    schedule 03.07.2014
comment
Это не дает ответа на вопрос. Чтобы подвергнуть критике или запросить разъяснения у автора, оставьте комментарий под его сообщением — вы всегда можете прокомментировать свои собственные сообщения, и как только у вас будет достаточно репутация, вы сможете комментировать любой пост. - person Yan Sklyarenko; 03.07.2014
comment
@YanSklyarenko, что ты имеешь в виду? Это решение проблемы, добавление предложенной строки запускает мой скрипт. - person nathanvda; 24.09.2014
comment
@nathanvda, это может быть решением (хотя автор еще не принял ответ), но может быть полезно еще одно объяснение. - person Yan Sklyarenko; 24.09.2014
comment
Ответ был предельно ясен для меня. Полученная ошибка жалуется на отсутствующую (стандартную) библиотеку, которая, как правильно отвечает Анастасия, должна быть включена явно. Больше нечего объяснять. Многие пользователи с низким баллом вообще не знают, как пользоваться сайтом, поэтому я предполагаю, что именно поэтому ОП не принял ответ. Или он переключился на что-то другое. Этот ответ был ответом мне, так что имхо утверждение вашего комментария просто неверно. - person nathanvda; 24.09.2014

У меня была такая же проблема со старым приложением Rails, работающим на старой Ubuntu Lucid. Я установил старую версию геокита (1.5.0), и она заработала.

person Michaël Witrant    schedule 12.09.2014