Rails 6测试-先前删除的表出现“找不到表”错误

问题描述 投票:0回答:1

我正在尝试为我的Rails应用程序编写一些测试。在我的第一个测试的定义的第一行,Rails抛出了这个无用的错误:

Error:
LabStationTest#test_prioritize_students_basic:
ActiveRecord::StatementInvalid: Could not find table 'equipment'

equipment是我在先前的迁移中删除的表。我的代码中不再有对其的引用,并且此后多次运行诸如rails db:droprails db:migraterails db:resetrails db:test:prepare之类的命令无济于事。

我试图在项目范围内搜索“设备”一词,但由于某些原因,我确实在CREATE TABLE IF NOT EXISTS "equipment"中找到了structure.sql语句。我不确定这是否相关或如何安全删除它,并且找不到该术语的其他引用。

Rails很棒,但是绝对让我发疯了,codegen如何将隐藏的引用分散到整个地方。有人知道我下一步该怎么做吗?

ruby-on-rails rails-activerecord
1个回答
0
投票

发布此消息后不久,我发现了test/fixtures中剩余的过时模型-这似乎是罪魁祸首。

诸如此类的错误是我对Rails的最大挫败,他们对我的“基于配置的约定”范式产生了疑问。如果它们至少包括带有错误消息的堆栈跟踪信息,那不会是一半的麻烦,但是即使使用-v标志,它们也往往提供很少的有用信息

© www.soinside.com 2019 - 2024. All rights reserved.