这个主题说明了一切。
我使用的是shrine和一个照片模型。
当我上载文件时,create操作抛出此错误
Shrine::Error (storage :store未在ImageUploader上注册)
我查了一下,每个人都建议将shrine.rb的名称改为类似01_shrine.rb的名称,这样它就可以更早地加载。
这对我不起作用。我在models文件夹中有一个image_uploader.rb,在config / initializers中有一个shrine.rb。
奇怪的是,在rails抛出一个错误后,当我导航到照片路径时,照片确实上传了。
发布于 2021-01-12 20:29:18
问题可能出在你的旧记录上。正如我所猜测的那样,默认的配置类似于:
Shrine.storages = {
cache: Shrine::Storage::FileSystem.new("public", prefix: "uploads/cache"), # temporary
store: Shrine::Storage::FileSystem.new("public", prefix: "uploads"), # permanent
}然后,您上传了用于测试目的的文件,并将其重命名为初始" store“store
Shrine.storages = {
new_cache: Shrine::Storage::FileSystem.new("public", prefix: "uploads/cache"), # temporary
**new_store**: Shrine::Storage::FileSystem.new("public", prefix: "uploads"), # permanent
}Shrine尝试在现有记录中查找旧的"store“,并抛出错误
https://stackoverflow.com/questions/65683811
复制相似问题