【发布时间】:2015-07-03 14:45:10
【问题描述】:
在我的 spec/rails_helper.rb 中,如果它不退出,我有下面的代码来创建测试数据库。
def database_exists?
ActiveRecord::Base.connection rescue ActiveRecord::NoDatabaseError ? false : true
end
unless database_exists?
ActiveRecord::Base.establish_connection(:"#{ENV['RAILS_ENV']}")
db_config = ActiveRecord::Base.configurations[ENV['RAILS_ENV']]
ActiveRecord::Base.connection.create_database db_config
end
但在调用 rspec 时出现此错误:
.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/activerecord-4.2.1/lib/active_record/connection_adapters/mysql2_adapter.rb:23:in `rescue in mysql2_connection': 未知数据库 'my-db-test' (ActiveRecord::NoDatabaseError)
问题出在哪里?
如果我使用 system('rake db:create'),它可以工作,但这是一个好习惯吗?
【问题讨论】:
标签: ruby-on-rails ruby activerecord rspec rspec-rails