While this is not strictly necessary, it can help moving the data of one tenant to a different server or removing it. Note we're using subfolders inside the `tenants` subfolder. If we simply used subfolders with the schema names, if the schema names were, for instance, language codes like `es`, `en`, `it`, ... they would conflict with the default subfolders used by Active Storage.
14 lines
301 B
Ruby
14 lines
301 B
Ruby
require "active_storage/service/disk_service"
|
|
|
|
module ActiveStorage
|
|
class Service::TenantDiskService < Service::DiskService
|
|
def path_for(key)
|
|
if Tenant.default?
|
|
super
|
|
else
|
|
super.sub(root, File.join(root, "tenants", Tenant.current_schema))
|
|
end
|
|
end
|
|
end
|
|
end
|