Rails / Paperclip – 跳过图像处理

如何基于虚拟属性跳过后处理?

我的虚拟属性在before_asset_post_process回调中始终为nil

创建

attachment = Attachment.create(asset: File.open(file.png), :skip_thumb => 1) 

可连接的模型

 class Attachment  lambda { |attachment| { :thumb => ["100>", 'jpg'] , :thumb_big => ["200>", 'jpg'] } before_asset_post_process :proceed_or_cancel def proceed_or_cancel #self.skip_thumb is always nil if (self.skip_thumb.present?) return false end end end 

你在Attachment模型中使用attr_accessible吗? 如果是这样,并且如果它不包含skip_thumb ,则当您尝试通过批量分配进行分配时,这会失败(静默)。

attr_accessible相反的是attr_protected ,如果你在其中有skip_thumb ,则删除它。

赋值:asset将在赋值之前发生:skip_thumb如果它是传递给Attachment.create()的哈希中的第一个。 因此,如果您将代码更改为:

 attachment = Attachment.create(skip_thumb: 1, asset: File.open(file.png)) 

我希望这不是太晚才有用……