Ask A Question

Notifications

You’re not receiving notifications from this thread.

Shrine::Error: storage :cache isn't registered on FileUploader

Ashutosh Mittal asked in Rails

Im using Mongoid 6.0.3, ruby 2.3.1 and rails 5.2

I created a file_uploader class for handling my uploads using shrine.

/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

But i get error when saving data,

In my Model it is called as
include FileUploader::Attachment.new(:file)
field :file_data

Reply

Rails is loading FileUploader before shrine initializer,
After adding require_relative './initializers/shrine'

Reply
Join the discussion

Want to stay up-to-date with Ruby on Rails?

Join 73,895+ developers who get early access to new tutorials, screencasts, articles, and more.

    We care about the protection of your data. Read our Privacy Policy.

    Screencast tutorials to help you learn Ruby on Rails, Javascript, Hotwire, Turbo, Stimulus.js, PostgreSQL, MySQL, Ubuntu, and more. Icons by Icons8

    © 2023 GoRails, LLC. All rights reserved.