0
我在桌上有一个信用卡号码字段。 对于<%= f.text_field:credit_number%>,我想用'xxxx xxxx xxxx xxxx'而不是'xxxxxxxxxxxxxxxx'的格式显示它。 但我不想用DB中的数字来保存空间。在ActiveRecord中显示格式字符串
现在我不在乎输入,只是显示。
完成它的最好方法是什么?
谢谢。
山姆
我在桌上有一个信用卡号码字段。 对于<%= f.text_field:credit_number%>,我想用'xxxx xxxx xxxx xxxx'而不是'xxxxxxxxxxxxxxxx'的格式显示它。 但我不想用DB中的数字来保存空间。在ActiveRecord中显示格式字符串
现在我不在乎输入,只是显示。
完成它的最好方法是什么?
谢谢。
山姆
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
串加入。
谢谢你的回答。但是,你误解了我的问题。我知道如何改变字符串。但是我想在格式显示时保存没有格式的数据。 –
@SamKong为你的模型添加'before_create'模块。看更新答案 –