我有很多形式的数字字段用于输入相当大的数字。我正在使用一些javascript自动放置逗号来分隔数字,以便在表单中更容易阅读。 问题是,当字段保存到数据库时,文本字段中的逗号使其成为非整数,因此它只保存第一组数字(从左到右)。遇到逗号。
我的问题是:处理此问题的最佳方法是什么?我认为它必须是一个相对常见的情况,虽然我无法找到一个简单的答案。
我已尝试添加before validation
方法去除逗号,但此时,数字已被更改。如果我绝望,我想我可以:
1)在我的视图中添加一个虚拟字段并隐藏整数字段
或
2)抓取并更改控制器中的参数
或
3)在提交之前覆盖提交按钮以运行逗号检查脚本。
但所有这些似乎都过分了。有没有更好的做法呢?
提前致谢。
答案 0 :(得分:0)
您可能需要将数字保留为数据库中的整数,但只需使用逗号显示。请参阅此链接How to print a number with commas as thousands separators in JavaScript
答案 1 :(得分:0)
如何允许字段为字符串字段,然后在.to_i
方法上进行标记。
修改强>
实际上你需要创建一个处理这些输入字段的方法并将其称为before_save
或其他东西
inputname do |i|
i.delete!(',').to_i
end
答案 2 :(得分:0)
最终偶然发现了答案。有一个名为autonumeric的精彩jquery插件,可以格式化文本框的外观,但不会格式化其value属性。它甚至出现在well maintained rails gem的STOOPID中 - 易于使用且记录良好。看看吧!
PS,它与简单形式f.input
的效果不佳。您仍然可以使用简单表单,但在要格式化的任何字段上,请改用f.text_field
。