【发布时间】:2020-04-09 03:12:43
【问题描述】:
从 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
【问题讨论】:
-
你在哪里打电话给
read?您能否也添加规范文件或至少它的相关部分?
标签: ruby-on-rails ruby rspec shrine