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
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.
Raylar üzerinde Ruby, ne biçim&; th&qu...
Nasıl Heroku üzerinde raylar sunucu ye...
Nasıl özgünlük Raylar, belirli eylemle...
Nasıl kullanılır "&; raylar üzeri...
HTML olarak bir dize oluşturmak için n...