Я хочу добавить метод к ActiveStorage::Variant
Как это сделать?
У меня есть это для ActiveStorage :: Blob, и оно работает, когда я изменяю код без перезагрузки сервера:
config/initializers/active_storage_direct_url.rb
:
module ActiveStorageDirectUrl
def cloudfront_url(expires_at = nil)
# xx
end
end
ActiveSupport.on_load(:active_storage_blob) do
ActiveStorage::Blob.include ActiveStorageBlobCachedUrl
end
Но проблема в том, когда я делаю это для ActiveStorage :: Variant. Я попробовал это:
ActiveSupport.on_load(:active_storage_blob) do
ActiveStorage::Variant.include ActiveStorageVariantCachedUrl
end
ActiveSupport.on_load(:active_storage_variant) do
ActiveStorage::Variant.include ActiveStorageVariantCachedUrl
end
Но в обоих случаях, в среде разработчиков, когда я изменяю некоторый код и не перезагружаю сервер, он говорит: undefined method 'direct_url' for #<ActiveStorage::Variant:0x00007fc04fa45530>
Когда я перезагружаю rails server
, это работает, хотя. То же самое для sidekiq, мне нужно перезагрузить его.