我在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机器上正常运行。如何才能正确加载灯具?
答案 0 :(得分:1)
问题如下:失败的模型对象的名称是多元化的," MyTables"而不是" MyTable"。 Fixtures.rb调用constantize来查找类的名称,它通常在失败时引发NameError异常,但是在一个fixture中吞下异常。复数模型对象引发了异常,因此夹具无法确定它尝试创建的类。没有该信息,它没有尝试将时间戳添加到insert语句 - 或者标签或主键 - 因此引发了错误。
我想如果代码的顺序略有不同,错误信息会有所不同。也许这就是在Linux上运行和在Windows上运行之间的区别。