2011-02-16 53 views
2

我在Rails3應用程序中使用CarrierWave上傳資產。在上傳方面都很好,但是當調用destroy方法時,相應的資產不會被刪除。CarrierWave在對象#destroy被調用時不會刪除資產?

它看起來像CarrierWave爲此創建了動態方法,可以在銷燬方法中使用,因此如果模型爲avatar,那麼像remove_avatar這樣的方法就會出現。

但是,我無法得到任何工作。任何提示非常感謝。

回答

3

我很抱歉地回答我的問題,但對我來說,這是一個簡單的忽略明顯的情況:CarrierWave模型需要一個字符串字段來包含路徑名。所以我的模式是:

class SiteAsset < ActiveRecord::Base 
    mount_uploader :asset, AssetUploader 

    def store_dir 
    'public/assets' 
    end 

    def extension_white_list 
    %w(jpg jpeg gif png pdf doc docx xls xlsx) 
    end 
end 

和正確的遷移是:

class CreateSiteAssets < ActiveRecord::Migration 
    def self.up 
    create_table :site_assets do |t| 
     t.string :title 
     t.string :asset 
     t.timestamps 
    end 
    end 

    def self.down 
    drop_table :site_assets 
    end 
end 

咒術的缺失部分是,「資產」串在我的移民失蹤。我想我只是沒有看到文件中的要求,儘管良好的理解會立即使它顯而易見。