SORU
23 EYLÜL 2008, Salı


Nasıl 'doğrulamak' raylar üzerinde yok muyum

Dinlendirici bir kaynak yok edilmesi, işlemi devam yok etmek için izin vermeden önce bir kaç şey garanti istiyorum? Temel olarak, eğer bunu yaparken geçersiz bir durumu veritabanında yer diye Not Eğer işlem yok durdurmak için yeteneği istiyorum? Orada bir geri aramaları operasyonun hiçbir doğrulama yok, o yüzden nasıl bir "operasyon yok," ister kabul edilmelidir? doğrulamak mu

CEVAP
23 EYLÜL 2008, Salı


O zaman seni yakalamak hangi bir özel durum neden olabilir. Raylar konularda yardımcı olan bir işlem siler tamamladı.

Örneğin:

class Booking < ActiveRecord::Base
  has_many   :booking_payments
  ....
  def destroy
    raise "Cannot delete booking with payments" unless booking_payments.count == 0
    # ... ok, go ahead and destroy
    super
  end
end

Alternatif olarak before_destroy geri kullanabilirsiniz. Bu geri çağırma normalde bağımlı kayıtlarını yok etmek için kullanılır, ancak bir özel durum veya bir hata yerine ekleyebilirsiniz.

def before_destroy
  return true if booking_payments.count == 0
  errors.add :base, "Cannot delete booking with payments"
  # or errors.add_to_base in Rails 2
  false
end

myBooking.destroy şimdi yanlış döndürür, ve myBooking.errors dönüşte doldurulur.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • fast2hell

    fast2hell

    16 AĞUSTOS 2006
  • Shylo Sharity

    Shylo Sharit

    27 EKİM 2011
  • Tek Syndicate

    Tek Syndicat

    23 Temmuz 2008