2011-10-17 11 views
9

varsayalım birBir i18n enterpolasyon değişkenini form etiketi yardımcısı içinden nasıl geçirirsiniz?

#en.yml 
en: 
    activerecord: 
    books: 
     price: "Price in %{currency}" 

Sonra bir bakış

<%= t :price, :scope => "activerecord.attributes.book", :currency => "USD"%> 

içinde aşağıdakileri yapabilirsiniz aşağıdaki en.yml vardır ve "USD cinsinden Fiyatı" yazdırır.

Ama :: bu çeviri bir form anlaşılır

# views/books/edit.html 
f.label :price 

olduğunda para geçmesine nasıl MissingInterpolationArgument bir i18n atar bilemiyorum ama sözdizimi ne olabileceğini çözemiyorum

# views/books/edit.html 
f.label :price, :currency => "USD" 

eksik argümanı çalışmaz.

cevap

10

Ben denemek: gerçekten çalışmıyor Yani

<%= f.label I18n.t(:price, :scope => "activerecord.attribute.book", :currency => "USD") %> 
+0

. Fiyat için çeviri "USD cinsinden fiyat" ise, etiket etiketiniz geçerli bir HTML olmayan Fiyat olarak USD olarak görünecektir. – cailinanne

+0

Görüyorum, sonra bu: <% = f.label: fiyat, I18n.t (: fiyat,: scope => "activerecord.books.price",: currency => "USD")%> daha iyi olmalı. Üzgünüm, şu anda koşamam ve test edemiyorum .. @ Ray ile birlikte çalışmam mümkün değil ;-( – Cygnusx1

+0

Doğru, başladığım buydu (asıl soruya bakın). Ancak, çok fazla araştırmadan sonra, istisna olduğumu düşünüyorum. aslında client_side_validations modülü tarafından görülebilmektedir.İsteminde bulunan ikinci öneri, client_side_validations modülü dahil edilmediyse, burada iyi çalışır. – cailinanne

İlgili konular