如何向 ActiveStorage::Variant 添加方法?
How to add a method to ActiveStorage::Variant?
我想添加一个方法到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也一样,我需要重新加载它。
使用:
ActiveSupport::Reloader.to_prepare do
ActiveStorage::Variant.include ActiveStorageVariantCachedUrl
end
我想添加一个方法到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也一样,我需要重新加载它。
使用:
ActiveSupport::Reloader.to_prepare do
ActiveStorage::Variant.include ActiveStorageVariantCachedUrl
end