2012-01-06 27 views
21

Boş bir değere izin veren veya belirli bir format gerektiren bir form değerinin formatını doğrulamak istiyorum. Raylar: Formatı sadece değer varsa nasıl doğrulanır?

bu çalışıyor, bir formata karşı değerini doğrulamak için:

validates :application_bundle_identifier, :format => { 
    :with => /^[a-zA-Z0-9.-]+$/, 
    :message => "A bundle identifier should contain only alphanumeric (A-Z,a-z,0-9), hyphen (-), and period (.) characters." 
} 

Şimdi, kullanıcıların hiç değer giremezsiniz izin istiyorum. Bu durumda, regexp'i ^[a-zA-Z0-9.-]*$'a ayarlayabilirim, ancak bu çok iyi bir Rails-yolu gibi görünmüyor. Biçime bağlı olarak, mümkün olmayabilir veya en azından daha az açık.

Bu durumda en iyi uygulama nedir?

cevap

45

Özellik boş/boş/nil olduğunda, doğrulamayı atlamak için :allow_blank => true seçeneğini kullanabilirsiniz.

0

unless nil? || blank?'u ekleyin; boş (boş) veya boşsa, geçerliliğini atlamalıdır.

this page adresindeki son kod örneğine bakın.

+0

Hangi örnek şimdi? –

+0

Sayfanın altındaki lib/email_format_validator.rb' – jefflunt

+0

'daki özel doğrulayıcıyı İlk başvurduğunuzdan beri değişmiş olmalı. –

İlgili konular