2012-12-03 31 views
0

我已成功安裝PostGIS並使用postgres_ext gem來添加支持Rails postgis ActiveRecord適配器,但是當我嘗試在我的遷移中使用Postgres數組列類型時,它失敗:使用Postgres_ext和postgis適配器不能與數組列一起工作

t.string :pets, :array => true, :limit => 12 

和錯誤:

rake aborted! 
An error has occurred, this and all later migrations canceled: 

    undefined method `array' for #<ActiveRecord::ConnectionAdapters::ColumnDefinition:0x007fa8357b3308> 
    /Users/avishai/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.9/lib/active_support/core_ext/object/try.rb:36:in `try' 
    /Users/avishai/.rvm/gems/ruby-1.9.3-p194/gems/postgres_ext-0.0.9/lib/postgres_ext/active_record/connection_adapters/postgres_adapter.rb:197:in `add_column_options!' 
    /Users/avishai/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/schema_definitions.rb:38:in `add_column_options!' 
    /Users/avishai/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.9/lib/active_record/connection_adapters/abstract/schema_definitions.rb:31:in `to_sql' 
    /Users/avishai/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-postgis-adapter-0.4.3/lib/active_record/connection_adapters/postgis_adapter/spatial_table_definition.rb:76:in `block in to_sql' 
    /Users/avishai/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-postgis-adapter-0.4.3/lib/active_record/connection_adapters/postgis_adapter/spatial_table_definition.rb:76:in `map' 
    /Users/avishai/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-postgis-adapter-0.4.3/lib/active_record/connection_adapters/postgis_adapter/spatial_table_definition.rb:76:in `to_sql' 
    /Users/avishai/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-postgis-adapter-0.4.3/lib/active_record/connection_adapters/postgis_adapter/main_adapter.rb:192:in `create_table' 
    /Users/avishai/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.9/lib/active_record/migration.rb:466:in `block in method_missing' 
    /Users/avishai/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.9/lib/active_record/migration.rb:438:in `block in say_with_time' 
    /Users/avishai/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.9/lib/active_record/migration.rb:438:in `say_with_time' 
    /Users/avishai/.rvm/gems/ruby-1.9.3-p194/gems/activerecord-3.2.9/lib/active_record/migration.rb:458:in `method_missing' 

的Gemfile:

gem "rails", "~> 3.2.9" 
gem "airbrake" 
gem "pg" 
gem "postgres_ext" 
gem "activerecord-postgis-adapter" 
gem "activerecord-postgres-array", "~> 0.0.8" 

任何想法的想法如何解決這個問題?

回答

1

This is a known issue。問題是activerecord-postgis-adaptor和postgres_ext與ActiveRecord中的PostgreSQL適配器存在競爭補丁,解決方案是讓postgres_ext或activerecord-postgis-adapter依賴於其他gem。 Postgres_ext依賴於activerecord-postgis-adapter是沒有意義的,因爲你不必使用PostGIS來使用PostgreSQL的本地數據類型。你是打開鏈接問題的人)

相關問題