SORU
14 Aralık 2010, Salı


Eki silmek için nasıl Ataç raylar?

Raylar üzerinde Paperclip (w/ Amazon s3) 3 kullanıyorum. Varolan bir eklentiyi silmek istiyorumonu değiştirmedenbir güncelleştirme eylem kullanma.

Sadece here bunun bir örneği buldum ve çalışmaya, sadece ve neden söylemek günlüklerde bir şey yoktu silmek olmaz alınamadı. Formda böyle bir şey yapmak istedim:

<%- unless @page.new_record? || !@page.image? -%>
    <%= f.check_box :image_delete, :label => 'Delete Image' %>
<%- end -%>

(sayfa modelin ismi, görüntü ek tutan öznitelik adı)

Ama nasıl checkbox ve daha da önemlisi seziyorum, görüntü nasıl silebilirim? Ben herhangi bir yardım için teşekkür ederiz!

CEVAP
14 Aralık 2010, Salı


Öncelikle, oluşturduğunuzda bir check_box bir form_for (göründüğü gibi), sonra da formu gerektiği varsayılan olarak gönder :image_delete olarak "1" işaretli ve "0" işaretli. Yöntem bildirimi Bu gibi görünüyor:

def check_box(method, options = {}, checked_value = "1", unchecked_value = "0")

Eğer istersen, ama tabi isteğe bağlı olduğu diğer değerleri atayabilirsiniz gösterir.

İkinci olarak, el ile bağlı olduğu model örneği silmeden bir Eki silmek için arayın

@page.image.destroy #Will remove the attachment and save the model
@page.image.clear #Will queue the attachment to be deleted

Ve bir onay kutusu aracılığıyla görüntüleri silme yolu yapmak için, belki de Sayfa modeliniz için böyle bir şey ekleyin:

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

Formunuzu oluşturun ve :image_delete checkbox ekleyin, bu şekilde, "" Kullanıcı örneği. 0 değeri varsayılan yükler Ve eğer bu alanı denetleyicisi için image_delete güncellenir sonra "1" ve Kullanıcı kaydedildiğinde, resim silinecek olup olmadığını kontrol edin. kontrol edilir

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Ben Vivona

    Ben Vivona

    24 Ocak 2010
  • captainpuppys2000

    captainpuppy

    20 HAZİRAN 2013
  • Kindness

    Kindness

    23 Ocak 2006