CarrierWave在对象#destroy被调用时不会删除资产?
问题描述:
我在Rails3应用程序中使用CarrierWave上传资产。在上传方面都很好,但是当调用destroy方法时,相应的资产不会被删除。CarrierWave在对象#destroy被调用时不会删除资产?
它看起来像CarrierWave为此创建了动态方法,可以在销毁方法中使用,因此如果模型为avatar
,那么像remove_avatar
这样的方法就会出现。
但是,我无法得到任何工作。任何提示非常感谢。
答
我很抱歉地回答我的问题,但对我来说,这是一个简单的忽略明显的情况: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
咒术的缺失部分是,“资产”串在我的移民失踪。我想我只是没有看到文件中的要求,尽管良好的理解会立即使它显而易见。
答
那天我遇到了同样的问题。它使用简单的表单,但似乎不喜欢嵌套表单上的* remove_model_name *。
最后我只是吸了起来,使用的hidden_field有:_destroy