【问题标题】:Rake fixtures not populating correctly耙式夹具未正确填充
【发布时间】:2014-06-23 15:19:35
【问题描述】:

我在 Windows 上下载了一个 Rails 代码库。当我尝试运行功能测试时,夹具没有被初始化,出现如下错误:

Field 'created_at' doesn't have a default value: INSERT INTO `mytable` (`name`, `code`) VALUES ('MyString', 'MyString')

就像record_timestamps被设置为false一样,但是在config/test.rb中显式设置为true并没有什么区别。测试在 Linux 机器上正常工作。如何让灯具正确加载?

【问题讨论】:

  • 测试是否通过 Windows 命令行?
  • 不,所以 RubyMine 几乎没有。

标签: ruby-on-rails ruby fixtures


【解决方案1】:

问题如下:失败的模型对象的名称是复数形式,“MyTables”而不是“MyTable”。 Fixtures.rb 调用 constantize 以查找类的名称,这通常会在失败时引发 NameError 异常,但在夹具中该异常被吞没。复数模型对象引发了异常,因此夹具无法确定它试图创建的类。如果没有这些信息,它不会尝试将时间戳添加到插入语句 - 或标签或主键 - 因此会引发错误。

我想如果代码的顺序略有不同,错误消息会有所不同。也许这就是在 Linux 上运行和在 Windows 上运行的区别。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-08-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多