2014-07-22 60 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'模块。看更新答案 –