オブジェクトから(ペーパークリップ)画像を削除するために、カスタムコールバック(およびルート)を定義しています。
ActiveAdmin.register Camping do
#...
member_action :destroy_image, :method => :delete do
camping = Camping.find(params[:id])
camping.image.destroy
redirect_to({:action => :show}, :notice => "Image deleted")
end
end
これは期待どおりに機能します。名前付きルートを介してdestroy_image_admin_camping => /admin/campings/:id/destroy_image
。
問題は、これをフォームに追加する方法が見つからないことです。
ActiveAdmin.register Camping do
form do |f|
f.inputs "Camping" do
f.input :name
f.input :image
f.action :delete_image, :url => destroy_image_admin_camping_path(@camping.id), :button_html => { :method => :delete }
f.input :description
end
f.actions
end
#...
end
destroy_image_admin_camping_path
詳細:「編集中の現在のアイテムのID」を;に渡す方法がわかりません。@camping
はゼロで、f.camping
定義されていないので、そこにアイテムを渡す方法がわかりません。
これは正しいアプローチですか?私はこの「ajaxっぽい」インターフェースを、より一般的なcheckbox-that-deletes-images-on-updateよりも好みますが、これがまったく機能するかどうかはわかりません。