在Rails 4.0.0上.rc1,Ruby 2.0.0,在我运行迁移后,当我try 运行一个测试到rspec时,我看到以下错误:

/Users/peeja/.rbenv/versions/2.0.0-p0/lib/ruby/gems/2.0.0/gems/activerecord-4.0.0.rc1/lib/active_记录/migrations.rb:376:in

这似乎不对.没有人迁移他们的测试数据库,是吗?公平地说,他们已经做到了——我忘了这么做.所以我再次运行rake db:test:preparerspec命令…看到同样的错误.

如果我真的是rake db:migrate RAILS_ENV=test,这个错误就会消失.

发生什么事?这是Rails 4中的新功能吗?

推荐答案

从Rails 4.1开始,这rake db:test:*个任务已被弃用.相反,你的(test|spec)_helper.rb应该包括:

ActiveRecord::Migration.maintain_test_schema!

这意味着您的测试数据库将在每次运行测试时获得正确的模式,无论您是否从Rake任务运行它们.

Ruby-on-rails相关问答推荐

Rails HotWire和View Components:涡轮框架不会取代内容

使用ImportMaps将HighLightJS添加到rails 7.1

带有data-turbo的rails`link_to‘未获得turbo_stream请求格式

Ruby on Rails 更新触发了 Mailer 函数中的 ArgumentError

params.permit ruby​​3.2.1 更新后 Active::Record 的未定义方法=~

Rails 7 应用程序 - 引用模型文件时出现未初始化常量错误

Selenium chromedriver:无法从不可键入的键构造KeyEvent

Ruby Sinatra Web 服务在 localhost:4567 上运行,但不在 IP 上

attr_accessible(*attributes) 和 attr_protected(*attributes) 有什么区别?

如何从 Ruby on Rails 应用程序返回正确的 HTTP 错误代码

SQLite3::BusyException

Rails 将 form_for 对象传递给部分

jQuery ajax 请求不会触发 Rails 控制器的 JS 响应?

如何在 ruby​​ on rails 中获取控制器和操作列表?

Rails:设计:按角色登录后重定向

更改 form_for rails 3.1 生成的 html 表单 ID

RubyMine - 关闭在空行中间单击的功能

何时使用 Helpers 而不是 Partials

如何使用 url 连接到 postgresql

您可以在弹性 beantalk 环境中运行 rails 控制台或 rake 命令吗?