gpt4 book ai didi

ruby-on-rails - Ruby on Rails - 货币 : commas causing an issue

转载 作者:行者123 更新时间:2023-12-04 19:55:12 25 4
gpt4 key购买 nike

查看 SO,我发现使用 RoR 货币的首选方法是使用 decimal(8,2) 并使用 number_to_currency() 输出它们;

我可以从数据库中取出我的号码,但我在将它们输入时遇到了问题。

在我的更新操作中,我有以下行:

if @non_labor_expense.update_attributes(params[:non_labor_expense]) 
puts YAML::dump(params)

参数转储显示正确的值。 xx,yyy.zz ,但存储在数据库中的只是 xx.00

我需要做什么才能考虑到可能存在逗号并且用户可能不会输入 .zz(美分)。一些正则表达式和逗号?如果小数点是 .2 与 .20,你会如何处理。

必须有内置的或至少是更好的方法。

我的迁移(我不知道这是否有帮助):

class ChangeExpenseToDec < ActiveRecord::Migration
def self.up
change_column :non_labor_expenses, :amount, :decimal, :precision => 8, :scale => 2
end

def self.down
change_column :non_labor_expenses, :amount, :integer
end
end

最佳答案

我尝试了 Daniel 的 before_validation 想法,但我就是无法让它发挥作用。似乎当我到达 before_validation 时输入已经被转换。我采用的解决方案是重写该列的方法,并去掉那里的逗号:

def profit=(num)
num.gsub!(',','') if num.is_a?(String)
self[:profit] = num
end

关于ruby-on-rails - Ruby on Rails - 货币 : commas causing an issue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2134903/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com