我想将像“199,99”这样的价格作为浮点数或小数保存到数据库中。
我试图用“。”替换“,”。在带有前置过滤器的模型中。
但价格作为“199.00”传递给之前的过滤器。
有没有办法在模型类中转换它?我知道如何在控制器中执行此操作,但我如何在模型中执行此操作?
谢谢你的帮助。
我想将像“199,99”这样的价格作为浮点数或小数保存到数据库中。
我试图用“。”替换“,”。在带有前置过滤器的模型中。
但价格作为“199.00”传递给之前的过滤器。
有没有办法在模型类中转换它?我知道如何在控制器中执行此操作,但我如何在模型中执行此操作?
谢谢你的帮助。
您应该使用 number_to_currency 助手和适当的语言环境
或者,如果您不想弄乱语言环境,请显式声明分隔符。
number_to_currency(value_from_db, :unit => "$;", :separator => ".", :delimiter => " ", :format => "%u %n")
我相信这样做的正确方法是保持 db 值不变,并在您的视图层中创建一个辅助方法以使用您喜欢的格式显示数量
所以基本的想法是,在你的应用程序助手中
module ApplicationHelper
#p for price, just to keep things simple
def p(amount)
amount.gsub(".",",")
end
end
在你看来
<%= p(object.price) %>
您的方法的另一个缺点是,如果您将价格保存为123,34
,您以后将无法进行任何计算。
高温高压