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
自定义维度分配给实例时,Paperclip已触发ImageMagick命令。
如何在处理图像之前将自定义尺寸传递给Paperclip以定义样式?
答案 0 :(得分:0)
在保存模型之前,您是否尝试在模型中使用回调来计算宽度和高度?
before_save :set_styles
在附件的回形针文档中,回形针附件会在模型保存并在分配时处理文件时保存。