8

我正在做Ruby on Rails 教程。前三章使用 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 上。

4

2 回答 2

14

You did not define the database for the test environment. Your database.yml file should look like:

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
于 2013-09-28T12:30:45.747 回答
7

缩进是我的罪魁祸首。

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

但当然,ActiveRecord 错误消息是矫枉过正的......它让我看起来好像错过了一个宝石

于 2014-09-02T01:50:31.010 回答