Rails / ActiveRecord - AdapterNotSpecified,即使它是

时间:2013-09-28 12:25:13

标签: ruby-on-rails ruby activerecord

我正在做Ruby on Rails Tutorial.前三章使用SQLite,但后来建议在开发时使用PostgreSQL以便更容易地进行Heroku部署。在编辑我的database.ymlGemfile以使用pg而不是sqlite3后,它似乎有效 - 除非使用Rake运行测试。它会弹出AdapterNotSpecified错误。

C:/Ruby/Ruby1.9.3/lib/ruby/gems/1.9.1/gems/activerecord-4.0.0/lib/active_record/ connection_adapters/connection_specification.rb:52:in resolve_hash_connection': database configuration does not specify adapter (ActiveRecord::AdapterNotSpecif ied)

database.yml指定了一个适配器,如下所示:

development:
  adapter: postgresql
  host: localhost
  username: nekkoru
  password: derpderp
  database: development
  encoding: UTF8

发生了什么?我在Windows 7 x64,Ruby 1.9.3,Rails 4.0.0,PostgreSQL 9.3.0.1上。

2 个答案:

答案 0 :(得分:14)

您没有为测试环境定义数据库。您的database.yml文件应如下所示:

development:
  adapter: postgresql
  host: localhost
  username: nekkoru
  password: derpderp
  database: development
  encoding: UTF8

test:
  adapter: postgresql
  host: localhost
  username: nekkoru
  password: derpderp
  database: test        # or whatever the name is
  encoding: UTF8

答案 1 :(得分:6)

缩进是我的罪魁祸首。

Rails似乎有一种从yml文件中读取数据库类型(开发或生产)和数据库设置(适配器,主机,用户名等)的严格方法。

但当然ActiveRecord错误消息太过分了......它让我觉得我错过了一个宝石