神社-无法再次阅读附件

从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
yueyegouhun123 回答:神社-无法再次阅读附件

在读取内容agian之前,必须重置“读取指针”。 您可以致电.rewind

  

Shrine能够上传任何实现方法#read,#rewind,#eof?的类似IO的对象。和#close,其行为与IO类相匹配。

有关详细信息,请参见getting_startedthis examle

本文链接:https://www.f2er.com/2912025.html

大家都在问