2016-05-11 14 views
2

として扱われます。'場所'の種類を認識できませんでした。私が宝石<code>activerecord-postgis-adapter</code>を使用しようとしていると私は、このコードを実行しようとすると、文字列

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 

SRIDactiverecord-postgis-adapterの方法であり、ここで私が表示しようとしています私の地理的な列(場所)のsridしかしコンソールは私にFailed to recognize type of 'location'. It will be treated as String.を伝え続けている。

答えて

2

はおそらく、データベースへの接続、私はたPostGISに変更し、今それが動作するとき、私はアダプタとしてPostgreSQLのを使用し、私の問題への解決策を見つけました。

0

1)「アクティブレコード」にスペースがあります。

require 'activerecord-postgis-adapter'を使用してください。 PostGISのための変更PostgreSQLは:

default: &default 
    adapter: postgresql 

default: &default 
    adapter: postgis 

3になります)あなたが持っていることを確認してください:project_name/config/database.yml

、アダプターを変更する他の回答で述べたように

2)ポストギス拡張子を有効にする 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'も必要です。

関連する問題

 関連する問題