2015-07-01 4 views
1

Проблема

90% уверены, что это ошибка установки на моем конце, но я не могу сделать self.factory и пытается получить доступ к lonlat дает мне исключение «не определено метод `точка» для ноль: NilClass»activerecord_postgis_adapter: неопределенный метод `точка» для ноль: NilClass

Я могу

Набор lonlat с помощью:

mfactory = RGeo::ActiveRecord::SpatialFactoryStore.instance.factory(:geo_type => 'point') 
self.lonlat = mfactory.point(long, lat) 
self.save 

Это дает мне значения, как 0101000020E610000061C3D32B65965DC03657CD7344F64040 в дб.

Я не могу использовать:

self.lonlat = "POINT(#{long},#{lat})" 
self.save 

Вопросы

Нужно ли настройки что-то конкретное в модели?

ответ

8

I created a github issue with a less consise but more detailed explaination.

RGeos зависит от GEOS. Эта ошибка является результатом того, что RGeos не может загрузить GEOS.

Чтобы проверить, является ли это вопрос:

$ rails c 
> RGeo::Geos.supported? 
=> false 

Чтобы проверить, если у вас есть GEOS установлены:

geos-config --version 

Если GEOS не установлен:

brew install geos 

Если GEOS установлен, установите установленный RGeo:

$ geos-config --prefix 
/usr/local/Cellar/geos/3.5.0 
$ gem install rgeo -- --with-geos-dir=/usr/local/Cellar/geos/3.5.0 

Должно быть установлено правильно и исправлены ошибки. Вы можете проверить, как мы делали выше:

$ rails c 
> RGeo::Geos.supported? 
=> true 

Если это не работает, удалить все версии GEOS и RGEO:

$ brew uninstall geos 
$ gem uninstall rgeo 

Переустановите Геос и RGEO, как описано выше. Вы должны иметь gem 'rgeo' в своем Gemfile, и после того, как вы упадете, вы должны увидеть это как один из выходов: «Установка rgeo 0.4.0 с собственными расширениями»