2017-05-07 55 views
0

我花了今天的大部分試圖找出如何讓我的整型字段的貨幣格式,並用不同的方法無數轟擊使用金錢,Rails的錢寶石使用自定義輔助方法或區域設置。一個簡單的方法,以貨幣格式在Rails的

您可以使用number_to_currency方法實現此目的。假設你 有以下幾種觀點:

view.html.erb

<ul> 
    <li><%= client.payment %></li> 
</ul> 

假設列款項爲整數類型,這將打印出這一點,一些無格式。例如:5523

現在添加number_to_currency方法,並指定 你想使用的貨幣單位(可以是任何)

<ul> 
    <li><%= number_to_currency(client.payment, :unit => "$") %></li> 
</ul> 

現在,我們得到這樣的事情:5.523 .00 $

number_to_currency方法助手默認有一些選項,一個其中是它反轉(相對於慣例)逗號和句點的用法 。這些可以通過添加選項 :separator和:delimiter進行修改,併爲其提供您想要的值,如下面的 。

<ul> 
    <li><%= number_to_currency(client.payment, :unit => "$", :separator => ".", :delimiter => ",") %></li> 
</ul> 

這些是number_to_currency方法幫手(RubyOnRailsAPI)可用選項:

:locale - Sets the locale to be used for formatting (defaults to current locale). 

:precision - Sets the level of precision (defaults to 2). 

:unit - Sets the denomination of the currency (defaults to 「$」). 

:separator - Sets the separator between the units (defaults to 「.」). 

:delimiter - Sets the thousands delimiter (defaults to 「,」). 

:format - Sets the format for non-negative numbers (defaults to 「%u%n」). Fields are %u for the currency, and %n for the number. 

:negative_format - Sets the format for negative numbers (defaults to prepending a hyphen to the formatted number given by :format). Accepts the same fields than :format, except %n is here the absolute value of the number. 

:raise - If true, raises InvalidNumberError when the argument is invalid. 

回答

0

您是否嘗試過使用它沒有任何的選擇嗎?
number_to_currency(client.payment)
它應該默認爲$並且對我沒有任何選擇的罰款。

0

你可以用幾種不同的方法做到這一點。我個人建議在裝飾者(https://github.com/drapergem/draper)中執行此操作以從視圖中刪除一些邏輯和格式。

由於在之前的答覆中提到,您可以使用number_to_currency,而不是使用其他選項來獲得你正在尋找正確的格式。它可以採用整數,浮點或字符串。

number_to_currency 10000 
=> "$10,000.00" 

另一種方法是使用money-railshttps://github.com/RubyMoney/money-rails)如果你想對付Money對象:

money = Money.new(10000) 
=> #<Money fractional:10000 currency:USD> 

humanized_money_with_symbol money 
=> "$10,000.00"