0

この "199,99" のような価格を float または decimal としてデータベースに保存したいと考えています。

「、」を「。」に置き換えようとしました。フィルター前のモデルで。

ただし、価格は「199.00」として before フィルターに渡されます。

モデルクラスでそれを変換する方法はありますか? コントローラーでこれを行う方法は知っていますが、モデルでどのように行うことができますか?

ご協力いただきありがとうございます。

4

2 に答える 2

0

number_to_currency ヘルパーと適切なロケールを使用する必要があります

または、ロケールをいじりたくない場合は、区切り記号を明示的に宣言します。

number_to_currency(value_from_db, :unit => "$;", :separator => ".", :delimiter => " ", :format => "%u %n")
于 2012-12-19T06:42:52.443 に答える
0

これを行う正しい方法は、db値をそのままにして、ビューレイヤーでヘルパーメソッドを作成して、好みのフォーマットで金額を表示することだと思います

基本的な考え方は、アプリケーションヘルパーにあります

module ApplicationHelper
   #p for price, just to keep things simple
   def p(amount)
     amount.gsub(".",",")
   end
end

そしてあなたの見解では

<%= p(object.price) %>

このアプローチのもう 1 つの欠点は、価格を として保存すると123,34、後で計算を行うことができなくなることです。

HTH

于 2012-12-19T05:02:30.227 に答える