Rails 7 中的文件附件固定装置未正确附加

File attachment fixtures in Rails 7 not attaching correctly

我正在逐字执行 guide here,但是当我 运行 我的系统测试时,我尝试上传的文件似乎没有附加到我的夹具上。我相信我已经正确设置了所有内容,因为我确实看到上传的文件位于临时目录 (tmp/storage_fixtures) 中,因此无论出于何种原因它都没有将自己附加到模型中。这是我的文件:

towns.yml

toronto:
  id: 1
  name: Toronto

blobs.yml

toronto_map_image_blob: <%= ActiveStorage::FixtureSet.blob filename: "toronto_map.png", service_name: "test_fixtures" %>

attachments.yml

toronto_map_image:
  name: map_image
  record: toronto (Town)
  blob: toronto_map_image_blob

config/storage.yml

test_fixtures:
  service: Disk
  root: <%= Rails.root.join("tmp/storage_fixtures") %>

town.rb

class Town < ApplicationRecord
  has_one_attached :map_image
end

原来我遇到的问题是在 towns fixture 中定义一个 id。一旦我删除它并允许 id 自动生成,它就起作用了。这解释了为什么附件夹具无法正确地将自己分配给城镇模型(尽管我不确定为什么在这种情况下使用自定义 ID 不起作用,如果有人有任何见解,我将不胜感激)。