1

我有很多用于输入相当大数字的数字字段。我正在使用一些JavaScript自动放置逗号来分隔数字,以便在表单中阅读。 问题是,当字段保存到数据库中时,文本字段中的逗号使其成为非整数,因此它只在第一组数字(从左到右)保存到逗号之前保存。在数字字段中放置逗号

我的问题是:处理这个问题的最佳方法是什么?我认为这一定是比较常见的情况,尽管我找不到一个简单的答案。

我试过添加before validation方法去掉逗号,但是在那一点上,号码已被改变。如果我绝望了,我想我可以:

1)添加一个空场到我的观点和隐藏整场

2)抓住并改变参数在我的控制器

3)覆盖提交按钮以在提交之前运行逗号清除脚本。

但是,所有这些似乎过分。有没有更好的做法呢?

在此先感谢。

+0

或者将其解析为服务器上的字符串,并在其中删除逗号。 – epascarello

回答

0

通过这个答案FINALLY绊倒了。有一个叫做autonumeric的奇妙的jquery插件,用于格式化文本框的外观,但不是它的值属性。它甚至有一个well maintained rails gem STOOPID - 易于使用和相当有据可查。一探究竟!

PS,它与简单表格的f.input不兼容。您仍然可以使用简单的表单,但在要格式化的任何字段中,请改为使用f.text_field

0

如何允许字段为字符串字段,然后在.to_i方法上标记标签。

编辑

其实你需要创建一个方法来处理这些输入字段并调用它before_save什么

inputname do |i| 
    i.delete!(',').to_i 
end 
+0

不幸的是,它似乎一旦到达模型,数字就会被修改,因此没有用处。即使'before_validation'也发生得太晚。 – neanderslob