我正在尝试使用gem activerecord-postgis-adapter
,当我尝试执行以下代码时:
require 'active-record'
require 'pg'
require 'active record-postgis-adapter'
class Place < ActiveRecord::Base
record = Place.find(1)
line = record.location
puts line.srid
end
srid是activerecord-postgis-adapter
的一种方法,在这里我试图显示我的地理列(位置)的srid
可能找到了我的问题的解决方案,我在连接数据库时使用postgresql作为适配器,我改为postgis,现在它可以工作了。
1)您的示例在"活动记录"中有一个空格。
使用require 'activerecord-postgis-adapter'
。
2) 如其他答案中所述:将postgresql更改为postgis:
在project_name/config/database.yml
中,更改适配器:
default: &default
adapter: postgresql
成为
default: &default
adapter: postgis
3) 请确保已启用postgis扩展psql -d your_project_name_development -tAc "SELECT 1 from pg_extension where extname='postgis'" | grep -q 1 ||
psql -d your_project_name_development --command="CREATE EXTENSION postgis"
此外,在我的项目中,我必须重新导入数据。
注意:如果您使用RGeo-gem,您可能还需要require 'rgeo-activerecord'
。