我在桌子上有一个信用卡号码字段。 对于<%= f.text_field:credit_number%>,我想用某种格式显示它,例如'xxxx xxxx xxxx xxxx'而不是'xxxxxxxxxxxxxxxx'。 但我不想用DB中的数字来保存空间。
现在我不关心输入,只关心显示。
实现它的最佳方法是什么?
感谢。
萨姆
答案 0 :(得分:1)
text_field
不适合使用信用卡号<input type="number">
代替。请尝试创建助手,以便在视图中进行渲染:
=> "xxxxxxxxxxxxxxxx".chars.each_slice(4).map(&:join)*' '
=> "xxxx xxxx xxxx xxxx"
在视图中使用占位符:
<%= f.text_field :credit_number, placeholder: "xxxx xxxx xxxx xxxx" %>
来自评论:
将before_create块添加到models/user.rb
中的模型:
before_create do
credit_number.split(' ').join if credit_number
end
现在在创建之前(写入db)credit_number
字符串连接。