gpt4 book ai didi

ruby-on-rails - activerecord_postgis_adapter : undefined method `point' for nil:NilClass

转载 作者:数据小太阳 更新时间:2023-10-29 08:15:44 25 4
gpt4 key购买 nike

问题

90% 确定这是我的设置错误,但我无法执行 self.factory 并尝试访问 lonlat 给我一个异常“undefined method ‘point’ for nil: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

问题

我需要在模型中设置一些特定的东西吗?

最佳答案

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

按照上面的说明重新安装 geos 和 rgeo。您的 Gemfile 中应该有 gem 'rge​​o',在捆绑后,您应该将其视为输出之一:“Installing rgeo 0.4.0 with native extensions”

关于ruby-on-rails - activerecord_postgis_adapter : undefined method `point' for nil:NilClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31170055/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com