我想将这个“199,99”的价格保存为数据库中的浮点数或小数。
我试图用“。”替换“,”。在具有前过滤器的模型中。
但是价格会以“199.00”传递给之前的过滤器。
有没有办法在模型类中转换它? 我知道如何在控制器中执行此操作,但我如何在模型中执行此操作?
感谢您的帮助。
答案 0 :(得分:0)
我认为正确的方法是保持db值不变,并在视图层中创建一个帮助方法,以显示具有首选格式的金额
所以基本的想法是,在你的应用程序助手
中module ApplicationHelper
#p for price, just to keep things simple
def p(amount)
amount.gsub(".",",")
end
end
并在您的视图中
<%= p(object.price) %>
并且您的方法的另一个缺点是,如果您将价格保存为123,34
,您将无法在以后进行任何计算。
HTH
答案 1 :(得分:0)
您应该使用number_to_currency帮助程序和适当的语言环境
或者,如果您不想明确地混淆locales声明分隔符。
number_to_currency(value_from_db, :unit => "$;", :separator => ".", :delimiter => " ", :format => "%u %n")