Paperclip 在处理表单参数之前初始化样式,从而忽略了我指定自定义调整大小的尝试。
模型:
attr_accessor :new_width, :new_height
has_attached_file :attachment,
styles: lambda { |attachment| attachment.instance.set_styles }
...
def set_styles
# Default thumb:
styles = { thumb: '100x100>' }
# Resize original if new sizes have been specified
if new_width and new_height
styles[:original] = "#{new_width}x#{new_height}>"
end
styles
end
我可以通过日志文件看到定义了样式和convert
之前触发的命令,new_width
并new_height
为其分配了控制器传递的值。
Rails 服务器日志文件:
{:thumb=>"100x100>"} # logger.info in the model
...
# Command :: convert ... etc
# [paperclip] Saving attachments.
...
{:thumb=>"100x100>", :original=>"300x300>"} # logger.info in the model
当自定义尺寸分配给实例时,ImageMagick 命令已经被 Paperclip 触发。
如何在处理图像之前将自定义尺寸传递给 Paperclip 以定义样式?