NameError:未初始化的常量ActiveRecord :: ConnectionAdapters :: PostgreSQLAdapter :: TableDefinition

时间:2014-12-28 13:06:25

标签: ruby-on-rails postgis ruby-on-rails-4.2

生成rails 4.2.0 app并添加了activerecord-postgis-adapter并相应地编辑了database.yml文件。

但是现在当我rake db:create时,它会出现错误:

± be rake db:create                                                                                                         2.1.0
rake aborted!
NameError: uninitialized constant ActiveRecord::ConnectionAdapters::PostgreSQLAdapter::TableDefinition
/Users/millisami/Railsapps/showme/config/application.rb:16:in `<top (required)>'
/Users/millisami/Railsapps/showme/Rakefile:4:in `require'
/Users/millisami/Railsapps/showme/Rakefile:4:in `<top (required)>'
(See full trace by running task with --trace)

3 个答案:

答案 0 :(得分:6)

显然,activerecord-postgis-adapter宝石是not yet compatible with ActiveRecord 4.2

使用标准pg gem(ActiveRecord原生支持),或降级到4.1。

答案 1 :(得分:1)

scala> val m = Map("foo" -> Some(10), "boo" -> None) scala> m.values.exists(_ == None) res21: Boolean = true 的3.0.0版已经发布。它支持ActiveRecord 4.2。

activerecord-postgis-adapter

https://github.com/rgeo/activerecord-postgis-adapter

https://rubygems.org/gems/activerecord-postgis-adapter

答案 2 :(得分:0)

正如ob1在接受的答案的评论中指出的那样,在本文发表时,postgis适配器有一个支持ActiveRecord 4.2的测试版。这是Simone Carletti提供的链接中的文字:

  

此分支以3.0.0.beta1发布。测试:

     

gem&#34; activerecord-postgis-adapter&#34;,&#34; 3.0.0.beta1&#34;有   ActiveRecord 4.2中的PostgreSQL适配器的重大更改,以及   在单个代码中支持先前版本非常麻烦   基础。因此,而不是对先前的条件支持   ActiveRecord的这个版本,这个适配器只支持ActiveRecord   4.2及更高版本的master分支和3.0版。

     

activerecord-postgis-adapter版本2.x将继续支持   ActiveRecord 4.0和4.1。

     

activerecord-postgis-adapter版本3.x将支持ActiveRecord 4.2   以后。