0

我最近刚刚更新了我的 Rails 应用程序以使用 Authlogic。身份验证在开发模式下工作正常,但测试不再工作。每次我使用 rspec 启动时bundle exec rake spec,应用程序都会抛出以下错误消息(已修剪):

/home/user/.rvm/gems/ruby-1.9.3-p194/gems/authlogic-3.1.3/lib/authlogic/acts_as_authentic/base.rb:31:in `acts_as_authentic': You must establish a database connection before using acts_as_authentic (StandardError)
    from /home/user/Documents/projects/rails_demo/app/models/user.rb:6:in `<class:User>'
    from /home/user/Documents/projects/rails_demo/app/models/user.rb:2:in `<top (required)>'
    from /home/user/.rvm/gems/ruby-1.9.3-p194/gems/activesupport-3.2.6/lib/active_support/dependencies.rb:251:in `require'

我知道这与未建立数据库连接有关,但我不知道我该怎么做才能修复它。它在开发中工作。

顺便说一下,这是我的数据库配置:

test:
  adapter: sqlite3
  database: ":memory:"

production:
  adapter: sqlite3
  database: db/production.sqlite3
  pool: 5
  timeout: 5000

任何人都可以为我提供有关解决问题的方法的指导吗?任何帮助,将不胜感激。谢谢!

4

1 回答 1

0

对不起,回答我自己的问题。我应该早点发现这一点。更改测试环境的数据库配置以解决此问题:

test:
  adapter: sqlite3
  database: db/test.sqlite3
  pool: 5
  timeout: 5000

不过,我不知道为什么 Authlogic 不能在内存 sqlite3 数据库中使用。

于 2012-07-13T10:35:13.950 回答