İlk olarak, form_for'da bir onay kutusu oluşturduğunuzda (ki bu size benziyor), o zaman form varsayılan olarak göndermelidir: image_delete işaretliyse "1" ve işaretli değilse "0" olarak. Yöntem bildirimi şuna benzer:
def check_box(method, options = {}, checked_value = "1", unchecked_value = "0")
Bu, isterseniz başka değerler atayabileceğinizi gösterir, ancak bu elbette isteğe bağlıdır.
İkinci olarak, bir eki, eklendiği model örneğini silmeden manuel olarak silme çağrısı şudur:
@page.image.destroy
@page.image.clear
Resimleri bir onay kutusu aracılığıyla silme yönteminizi gerçekleştirmek için, belki Sayfa modelinize şuna benzer bir şey ekleyebilirsiniz:
class Page < ActiveRecord::Base
has_attached_file :image
before_save :destroy_image?
def image_delete
@image_delete ||= "0"
end
def image_delete=(value)
@image_delete = value
end
private
def destroy_image?
self.image.clear if @image_delete == "1"
end
end
Bu şekilde, formunuzu oluşturduğunuzda ve: image_delete onay kutusunu eklediğinizde, Kullanıcı örneğinden "0" varsayılan değerini yükleyecektir. Ve bu alan işaretlenirse, denetleyici image_delete'i "1" olarak günceller ve Kullanıcı kaydedildiğinde görüntünün silinip silinmeyeceğini kontrol eder.
has_attached_file
, yoksa Sayfa eki olan, image adında mı?