2011-02-16 51 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 

咒术的缺失部分是,“资产”串在我的移民失踪。我想我只是没有看到文件中的要求,尽管良好的理解会立即使它显而易见。