2

我正在使用 Mongoid 6.0.3、ruby 2.3.1 和 rails 5.2

我创建了一个 file_uploader 类来使用神社处理我的上传。

/app/uploaders/file_uploader.rb

class FileUploader < Shrine
    Attacher.validate do
        validate_max_size 5.megabytes, message: 'is too large (max is 5 MB)'
        validate_mime_type_inclusion %w(application/pdf image/png 
application/plain text/plain text/plain application/excel application/x- 
excel image/jpeg)
    end
end

config/initializers/Shrine.rb

require "shrine"
require "shrine/storage/file_system"
Shrine.storages = {
        cache: Shrine::Storage::FileSystem.new("public", prefix: 
"uploads/cache"), # temporary
        store: Shrine::Storage::FileSystem.new("public", prefix: "uploads"), #     permanent
}
Shrine.plugin :mongoid
Shrine.plugin :validation_helpers

但是保存数据时出现错误,

在我的模型中,它被称为

include FileUploader::Attachment.new(:file)
field :file_data
4

2 回答 2

3

Shrineuses :file作为默认文件类型分析器。在将其更改为:mime_types神社初始化程序后,它起作用了。

于 2018-10-18T05:57:30.260 回答
0

我必须执行以下操作来修复它:

正如@ashusvirus 所建议的那样

模型.rb

旧代码

include ImageUploader::Attachment.new(:file)

新代码

include ImageUploader::Attachment.new(:mime_types)

此外,我使用的是 ActiveRecord 而不是 Sequel 或 Mongoid,所以我也必须更改以下内容:

配置/shrine.rb

旧代码

Shrine.plugin :sequel

新代码

Shrine.plugin :activerecord
于 2019-02-09T01:00:43.930 回答