2014-07-22 106 views
0

我在桌上有一個信用卡號碼字段。 對於<%= f.text_field:credit_number%>,我想用'xxxx xxxx xxxx xxxx'而不是'xxxxxxxxxxxxxxxx'的格式顯示它。 但我不想用DB中的數字來保存空間。在ActiveRecord中顯示格式字符串

現在我不在乎輸入,只是顯示。

完成它的最好方法是什麼?

謝謝。

山姆

回答

1

text_field不是信用卡號碼使用<input type="number"> instead.Try創建幫手,爲渲染鑑於這樣的好:

=> "xxxxxxxxxxxxxxxx".chars.each_slice(4).map(&:join)*' ' 
=> "xxxx xxxx xxxx xxxx" 
考慮使用佔位符

<%= f.text_field :credit_number, placeholder: "xxxx xxxx xxxx xxxx" %> 

來自評論:

add before_c reate塊在models/user.rb型號:

before_create do 
    credit_number.split(' ').join if credit_number 
end 

現在創建前(寫入DB)credit_number串加入。

+0

謝謝你的回答。但是,你誤解了我的問題。我知道如何改變字符串。但是我想在格式顯示時保存沒有格式的數據。 –

+0

@SamKong爲你的模型添加'before_create'模塊。看更新答案 –