2012-01-25 3 views
3

私はRailcast#253 http://railscasts.com/episodes/253-carrierwave-file-uploadsに従っており、素晴らしい作品です。しかし、私はそれをActiveAdminで実装しました。Formtastic(ActiveAdminはFormtasticをフォームに使用しています)。Rails 3 Carrierwaveモデルの属性であるファイルを削除するには?

私はファイルをダウンロードしてファイルをダウンロードできます。

にリンクすると、リンクを削除すると、Carrierwaveがモデルの属性の代わりにモデルを期待しているようです。

hbl_pdf属性(PDFドキュメント)を持つモデルShipmentがあります。これは私が出荷、唯一の文書を削除したくない...私はエラーを取得するundefined method model_name for PdfUploader:Class

私の削除リンク...

row("HBL") { link_to 'remove', shipment.hbl_pdf, :confirm => "Are you sure?", :method => :delete } 

です。

答えて

12

代わりにremove_hbl_pdf!を出荷オブジェクトに呼び出すのはなぜですか?この「アップロードされたファイルの削除」セクション読む:https://github.com/jnicklas/carrierwave#readme

link_to 'remove', remove_shipment_pdf_path(shipment), :confirm => "Are you sure?", :method => :delete 

とあなたのコントローラで

def remove_shipment_pdf 
    shipment = Shipment.find_by_id(params[:shipment_id]) 
    shipment.remove_hbl_pdf! if shipment 
    # respond with something or redirect 
end 

を削除するコマンドの構文は、あなたの属性の名前に基づいています。モデルの属性名が.hbl_pdfの場合はremove_hbl_pdf!、それが.imageの場合はremove_image!

+0

よりもはるかに優れています。 – nodrog

関連する問題