Is there a place in the docs that I’ve missed?
If you’re referring to the plugin system inheritance, there is a section in the getting started guide explaining applying plugins globally and per uploader. If you think it could be clearer, I’m always open to PRs.
I don’t use keep_files and i would expect that the file is deleted from the store. But UploadedFile.exists? returns true
You must clear the attachment by assigning to the attachment attribute, not the column directly:
material.update(source: nil) # not :source_data
Shrine doesn’t detect changes that happen at the column level, everything should go through Shrine attributes.