这个错误通常是因为数据库中存在空值造成的。解决办法是在测试数据文件中找到与出现错误的测试相关联的文件,确保其中不含空值。以下是一个修改后的示例:
# bad example
fixtures:
posts:
- title: My first post
image: <%= ActiveStorage::FixtureSet.blob("test/fixtures/files/image.jpg") %>
- title: My second post
image: <%= ActiveStorage::FixtureSet.blob(nil) %>
# good example
fixtures:
posts:
- title: My first post
image: <%= ActiveStorage::FixtureSet.blob("test/fixtures/files/image.jpg") %>
- title: My second post
image: <%= ActiveStorage::FixtureSet.blob("test/fixtures/files/second-image.jpg") %>
在这个示例中,因为第二个测试的 image
字段中含有空值 nil
,就会出现上述错误。修改后,我们将第二个测试文件中的 image
换成了一个可用的文件 test/fixtures/files/second-image.jpg
,即可解决该问题。
上一篇:ActiveStorage::FileNotFoundError(使用数据库后端)
下一篇:ActiveStorage::IntegrityError Rspec attaching file (Rspec附加文件时的ActiveStorage完整性错误)