2009-08-03 26 views
6

nasıl dinamik olarak raylar bir doğrulama yapılandırabilirsiniz? Için ÖRNEK ben Raylar Dinamik Doğrulama

validates_length_of :name, within => dynamic 

değişken "dinamik" kullanıcı tarafından ayarlanacaktır

varsa. kaydetmek günü, doğrulama yapılandırması içinde yapılandırmak için değişken "dinamik" değerini kullanmalıdır.

+0

Bunu [procs ile dinamik doğrulamaları tanımlayan] üzerinde bir göz atmalısınız (http://stackoverflow.com/a/9961015/1287376). –

cevap

13

Ben validates_length_of dinamik parametrelerini destekler inanmıyorum. Davranışı özel bir doğrulamada çoğaltmanız gerekir.

# in model 
def validate 
    unless (5..10).member? name.length 
    errors.add :name, "must be within 5 to 10 characters" 
    end 
end 

Bu, statik bir aralık kullanır ancak kendi özel aralık değişkeninizi kolayca kullanabilirsiniz.

def validate 
    unless some_range.member? name.length 
    errors.add :name, "must be within #{some_range.first} to #{some_range.last} characters" 
    end 
end 

Sen benim Everyday Active Record series benim Railscasts episode on conditional validations ve Bölüm 3 kontrol etmek isteyebilir.

+0

Cevabınız için teşekkür ederiz. validates_presence_of: Böyle validates_presence_of dinamik değişken ihtiyaç ismi: yerel ayarlar => dynamic_array (: yerel ayarlar olabilir [: tr,: de, ...] dinamik). Yapılandırma: yerel ayarları validates_presence_of tarafından i18n_multi_locales_validations eklenti ile birlikte geliyor. – phlegx

İlgili konular