2010-09-27 21 views
16

Rails 3.0'da varsayılan doğrulama hata iletileri nerede bulunuyor? Örneğin, ActiveRecord :: Error.default_error_messages [: alınan] eşdeğeri nedir? ActiveModel'in ActiveRecord yerine hataları ele aldığını bulmaya kadar ulaştım, ancak hataları kendim bulamıyorum.Rails 3.0'da Varsayılan Doğrulama Hata İletileri nerede?

+0

bu tamamen sorunuza cevap olmasa da size (o ne yapmaya çalışıyoruz olduğunu varsayarak) doğrulama hata iletileri özelleştirmek için bir yol sağlar: http://stackoverflow.com/questions/808547/ tamamen özel doğrulama-hata-iletiler-ray-raylar – rogeriopvl

+0

Aslında, onları özelleştirmeye çalışmıyorum ama sadece bunları test etmek için kullanmak, doğru hata iletilerinin yükseltildiğinden emin olmak için. Ancak, verdiğiniz bağlantı yararlıdır - daha önceki sürümlere göre özelleştirilmiş mesajlar oluşturmak daha karmaşık ve daha az sezgisel görünmektedir! –

cevap

22

http://github.com/rails/rails/blob/master/activemodel/lib/active_model/locale/en.yml

ve

http://github.com/rails/rails/blob/master/activerecord/lib/active_record/locale/en.yml

: D

GÜNCELLEME: Belki

kendi özel hata iletileri eklemek için çalışmalısınız?

# de.yml 
activerecord: 
    errors: 
    messages: 
     taken: "ist bereits vergeben" 

# test_spec.rb 
... 
assert_equal(object.errors[field], I18n.t("activerecord.errors.messages.taken")) 
... 
+0

Teşekkürler, bu başka yararlı bilgiler. Ancak, Rails programındaki bilgilere nasıl erişebilirim? ActiveModel :: Hataları veya başka bir yerde bir yöntem olmalı, yok mu? –

+0

Tam olarak ne yapmak istersiniz? – Lichtamberg

+0

Örneğin, doğru hata mesajının verildiğini test etmek için assert_equal (object.errors [field], ActiveRecord :: Error.default_error_messages [: alındı]). Bu benim için önemli olan pragmatik bir şey değil, sadece bir metin edebi kullanabilirim, ama işleri yapmanın "saf" yolu gibi görünmüyor. –

İlgili konular