Rails 7.0.8.5配置ActiveStorage多S3桶报versions关联未找到错误
解决方法
1. 修复storage.yml语法错误
你的storage.yml存在缩进错误,access_key_id等配置项需与service处于同一层级,而非嵌套在service下方。修正后的配置如下:
amazon_backups: service: S3 access_key_id: <%= ENV.fetch('AWS_ACCESS_KEY_ID') %> secret_access_key: <%= ENV.fetch('AWS_SECRET_ACCESS_KEY') %> region: <%= ENV.fetch('AWS_REGION') { 'us-east-1' } %> bucket: <%= ENV.fetch('AWS_BACKUPS_BUCKET') %>
错误缩进会导致Rails无法正确加载存储服务配置,进而引发后续异常。
2. 排查PaperTrail配置问题
错误提示说明PaperTrail被错误应用到了ActiveStorage的内置模型上:
- 检查代码中是否存在
ActiveStorage::Blob.has_paper_trail或ActiveStorage::Attachment.has_paper_trail这类配置,若有直接移除。 - PaperTrail仅需应用到你的业务模型(即添加
has_one_attached :file的模型),无需作用于ActiveStorage的系统模型。
3. 验证配置并重启服务
修复yaml配置与PaperTrail设置后,重启Web服务器,再次尝试保存记录并上传文件。若问题仍存在,检查PaperTrail版本是否与Rails 7.0.8.5兼容,必要时升级到适配版本。
内容的提问来源于stack exchange,提问作者DSadaka
相关产品推荐
相关产品推荐

