我想在我的(sqlite和mysql)数据库中存储货币.我正在尝试使用十进制列类型,其中:scale => 2.
这不符合预期.如果我保存记录:rate => 10.50,它作为10.5存储在我的sqlite数据库中.另外,当我在表单字段中输出值时,它显示为10.5.
每次我想在Rails表单中很好地显示值时,我不想做hacky字符串格式化.
有办法解决这个问题吗?这是一个sqlite的事吗?我只是误解了十进制列类型吗?
编辑:
为了澄清,我希望能够使用通常的表单生成方法:
- form_for @project do |f|
= f.text_field :rate
如果我必须显式格式化输出,我将不得不为每个十进制属性创建额外的方法:
def formatted_rate
"%.2f" % rate
end
= f.text_field :formatted_rate
有没有其他常见的技巧来强制输出格式,仍然使用默认的Rails formbuilder?
解决方法:
您可以使用Rails ActionView Number Helper number_with_precision
:
number_with_precision(my_number, :precision => 2)
原文地址:https://codeday.me/bug/20190621/1257137.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。