Çoğu uygulamada olduğu gibi, tüm nesnelerin ısrar edilmeden önce uyması gereken bir dizi sert ve hızlı doğrulama kurallarına sahip bir Rails projem var. Doğal olarak, ActiveModel'in Validasyonları bunun için mükemmeldir - Rails varsayılanlarının ve kendi elden haddelenmiş valizlerimizin bir kombinasyonunu kullanıyoruz.Kayıt doğrulama uyarılarının yanı sıra hataların raporlanması için etkili bir yol?
Her ne kadar olsa da, verileri, en katı anlamıyla geçersiz olmasa da, gözden geçirmesi gereken unsurlar olduğu durumlarda, kullanıcıyı uyarmak istediğimiz kullanım durumlarına karşı geliyoruz; Kendileri, kayıt sürekliliğinin oluşmasını engellememelidir. Kafamın üst kapalı birkaç örnek: Bir yazı başlığı TÜM HARFLERDEN sunulmuştur
- , muhtemelen geçerli olabilir ama gövde metni bir pice x sayısından fazladır
- değil zaten mevcut ve bu kadar çok matchers var - - ideal ben yeniden muktedir istediğinizi kelimelerin daha az ya da daha çok önerilen bir kelime yerine doğrulamaları modülü biz doğrulama hataları nasıl ele için böyle iyi bir benzetmedir
saymak Bu temel kod, ancak errors
ile birlikte warnings
ürün koleksiyonu oluşturmak için. Bu, evdeki olası ihlallerin daha kötü ve sıkı bir şekilde uygulanan kurallara eşdeğer olduğunu ima etmektense, bu durumları kullanıcılarımıza farklı şekilde vurgulamamıza izin verecektir.
activemodel-warnings gibi mücevherlere baktım, ancak kayıt doğrulandığında, eşleştiricilerin kontrol edildiğini değiştirerek, errors
koleksiyonunu buna göre genişleterek veya daraltarak çalışırlar. Benzer şekilde, bir şeyleri el ile yapıp yapamayacağımı görmek için doğrulamalar için yerleşik :on
parametresine baktım, ancak yine de tüm ihlaller ayrıştırmak yerine bir hata topluluğuna dönüşecek.
Herkes benzer bir şey denedi mi? Bu hedefe ulaşmak isteyen tek kişi olduğumu hayal bile edemiyorum ama şu anda boş bir çizim yapıyorum ...
Bu sorunun kabul edilen cevabını incelediniz mi? http://stackoverflow.com/questions/3342449/activerecord-replace-model-validation-error-with-warning Ayrı bir 'ActiveModel :: Hatalar 'oluşturabilir ve uyarılarınız için depolama alanı olarak kullanabilirsiniz – Benj
ilginç, Benjamin, teşekkürler. Bu yaklaşım, içselleri aynı olsa bile, hata üretenlere karşı uyarılar için ayrı ayrı eşleştiriciler yazmamız gerektiği anlamına gelir. Kod çoğaltma potansiyeli olmasına rağmen bununla yaşayabilirim. Rails'in yerleşik Uzunluk doğrulama eşleştiricisini, arama bağlamına dayalı hatalar yerine uyarılar çıkarabilmesi için bir yolun yeniden tanımlanması için bir araç ... Ama eğer ihtiyacım olan yere götürürse pragmatik olmaya hazırım olun! –
Ben bu konuya derin girmedim, ama evet, o onaylama sınıflarının tümünü çoğaltmanız gerekecek gibi görünüyor. Eğer 'record.warnings.add (niteliğini, ...) gerekecektir nerede (... niteliğini)' 'Ayrıca – Benj