2012-11-02 79 views
2

如何跳過基於虛擬屬性的後處理?Rails /回形針 - 跳過圖像處理

我的虛擬屬性總是無在before_asset_post_process回調

創建

可拆卸的模型

class Attachment < AR::Base 
attr_accessor :skip_thumb 

    has_attached_file :asset, :styles => 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 
+0

不使用attr_accessible –

+0

這似乎是因爲屬性不被置直到before_asset_post_process之後 –

回答

0

你在你的Attachment模型中使用attr_accessible? 如果是這樣,並且它不包括skip_thumb當您嘗試通過質量分配分配時,失敗(靜默)。

attr_accessible的反義詞是attr_protected,如果您有skip_thumb,請將其刪除。

0

:asset的分配將在分配:skip_thumb之前發生,如果它首先位於散列中,那麼您將傳遞給Attachment.create()。因此,如果你改變你的代碼,它的工作:

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

我希望這不是太晚有用...