从Carrierwave迁移到Shrine后,某些测试开始失败。我注意到,从安装Shrine上传器的列中调用#read
时,只能调用一次。再执行第二次#read
将返回一个空字符串。也许我缺少一些配置,但是相同的代码适用于Carrierwave(我知道它是一个不同的上传器,但是对于我正在迁移到Shrine的内容,几乎不需要/几乎不需要更改代码库)
# shrine.rb -> for testing
require "shrine"
require "shrine/storage/s3"
require "shrine/storage/file_system"
Shrine.plugin :activerecord
Shrine.plugin :cached_attachment_data
Shrine.plugin :determine_mime_type,analyzer: :mime_types
Shrine.storages = {
cache: Shrine::Storage::FileSystem.new(
"public",prefix: "tmp/cache",),store: Shrine::Storage::FileSystem.new(
"public",prefix: "tmp",}
# carrierwave.rb -> for testing
...
config.storage = :file
config.enable_processing = false