2012-09-03 12 views
5

herkes!Ruby on Rails I18n enterpolasyonu

4: 30 karakter arasında olması gereken kullanıcı adı alanım için küçük bir doğrulama işlemine sahibim. Bir doğrulama yazdım: :length => { :within => 4..30, :message => I18n.t('activerecord.errors.range') - Her türlü hata için tek bir hata mesajı görüntülemek istedim (Pek gibi değil, çok uzun veya çok_short), ama işte soru şu: - hem min hem de maksimum değerleri çeviriye aktarabilirim. : Kullanıcı adı 4 ile 30 karakter arasında olmalıdır. Şu anda var: range: "should be between %{count} and %{count} characters", hangi işe yaramazsa (sadece kontrol için yapılmış).

Bu değerleri aralıktan almak mümkün mü?

Herkese teşekkürler!

cevap

9

yöntemden (veya stenografi - t) çevirmek I18n özel değişken geçirebilirsiniz:

I18n.t('activerecord.errors.range', :min => 4, :max => 30) 

Sonra% {min} ile% {max} ile dize şablonu içinde kullanabilirsiniz.

Bu, otomatik olarak aralığından almıyor, ancak bu düşünebileceğim en yakın şey.

+0

Yay! Anladım:: length => {: içinde => a = (4..30),: message => I18n.t ('activerecord.errors.range', : dk => a.min,: max = > a.max)} Fikir için teşekkürler! :) Umarım bu birisine yardımcı olur! – Dmitri