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