这是我的代码:
:styles => lambda { |attachment| attachment.instance.define_styles }
def define_styles
return_styles = Hash.new
case self.imageable_type
when "Admin::ProductDetail"
return_styles[:thumb] = "70x60>"
return_styles[:front] = "450x400>"
else
end
return_styles
end
问题在于,当我第一次上传图片时,它不会使用样式...只有在我重新上传图片后,所以它只创建默认样式,而不是:thumb 或第一次上传时:前。
答案 0 :(得分:1)
您可以使用回调before_post_process
:styles => lambda { |attachment| attachment.instance.define_styles }
before_post_process :skip_on_create
def skip_on_create
!new_record?
end
当此回调返回false时,后处理步骤将暂停
文档here
答案 1 :(得分:1)
我添加了此代码,现在可以使用了。
after_create :reprocess
def reprocess
self.image.reprocess!
end
但我不知道这是否是正确的做法。