Is there a way to define style aliases in paperclip (same transformations, same file path) ?
# in the model
has_attached_file :image, {
:styles => {
:thumb => "90x90>",
:small => :thumb
}
[...]
}
# in the application
model.image.url(:thumb)
=> 'path/to/image/thumb.jpg'
model.image.url(:small)
=> 'path/to/image/thumb.jpg'
I'm currently refactoring an application where there are a lot of duplicate styles. I would like to have it defined once, while not breaking the interface.
Here is a patch to add in an initializer:
module Paperclip
Options.class_eval do
attr_accessor :aliases
def initialize_with_alias(attachment, hash)
@aliases = hash[:aliases] || {}
initialize_without_alias(attachment, hash)
end
alias_method_chain :initialize, :alias
end
Attachment.class_eval do
def url_with_patch(style_name = default_style, use_timestamp = @options.use_timestamp)
style_name = @options.aliases[style_name.to_sym] if @options.aliases[style_name.to_sym]
url_without_patch(style_name, use_timestamp)
end
alias_method_chain :url, :patch
end
end
Use it this way:
has_attached_file :image, {
:styles => {
:thumb => "90x90>"
}
:aliases => { :small => :thumb }
}