我正在使用遗留数据库,其中某个百分比值存储在DECIMAL
列中,但用户输入并读取整数数据。
所以,让我们说数据库包含......
contracts
---------
funded_percent DECIMAL 10,5
我想在该表的ActiveRecord模型中添加“getter”和“setter”,在读取时将其乘以100,并在保存时除以100。
动机是这样的,在我的视图代码中,我只处理整数。
我不确定这样做的正确方法。
哦,有些值超过了小数点后三位。
因此,该方法需要将存储的值“0.036”舍入到显示值“4%”。
答案 0 :(得分:1)
这里你将属性称为“资助”来处理整数
def funded=(other)
self.funded_percent = other / 100
end
def funded
funded_percent * 100
end
答案 1 :(得分:1)
“0.036”到显示值“4%”。
您可以将.round
用于此
def funded
( funded_percent * 100 ).round
end
答案 2 :(得分:0)
请尝试以下方法:
def funded_percent=(value)
write_attribute :funded_percent, value/100 if value.present?
end
def funded_percent
(read_attribute :funded_percent) * 100
end
然后在您的视图中,您可以使用funded_percent.ceil