0

我想将像“199,99”这样的价格作为浮点数或小数保存到数据库中。

我试图用“。”替换“,”。在带有前置过滤器的模型中。

但价格作为“199.00”传递给之前的过滤器。

有没有办法在模型类中转换它?我知道如何在控制器中执行此操作,但我如何在模型中执行此操作?

谢谢你的帮助。

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) %>

您的方法的另一个缺点是,如果您将价格保存为123,34,您以后将无法进行任何计算。

高温高压

于 2012-12-19T05:02:30.227 回答