2011-10-17 13 views
9

假設一個具有以下en.yml如何在表單標籤幫助器中傳遞一個i18n插值變量?

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

然後一個可以做以下的觀點

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

,它會打印出「美元價格」。

但我無法弄清楚如何通過貨幣時,這個翻譯的形式

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

理解拋出i18n關聯:: MissingInterpolationArgument,但我想不出什麼語法可能通過缺少的說法

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

不起作用。

回答

10

我會嘗試:

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

這並不真正發揮作用。如果價格的翻譯是「以美元定價」,那麼您的標籤標籤將看起來像,這不是有效的HTML。 – cailinanne

+0

我看,那麼這個:<%= f.label:price,I18n.t(:price,:scope =>「activerecord.books.price」,:currency =>「USD」)%>應該會更好。對不起,我現在無法運行和測試.. @工作沒有欄杆availble ;-( – Cygnusx1

+0

對,這就是我開始(見原始問題)。但經過很多調查,我認爲我是例外看到實際上是通過client_side_validations模塊來完成的。我猜想,如果client_side_validations模塊沒有涉及到,那麼在您的評論中您的第二個建議可以正常工作。 – cailinanne

相關問題