在ActiveRecord中显示格式的字符串

时间:2014-07-22 06:46:59

标签: ruby-on-rails activerecord

我在桌子上有一个信用卡号码字段。 对于<%= f.text_field:credit_number%>,我想用某种格式显示它,例如'xxxx xxxx xxxx xxxx'而不是'xxxxxxxxxxxxxxxx'。 但我不想用DB中的数字来保存空间。

现在我不关心输入,只关心显示。

实现它的最佳方法是什么?

感谢。

萨姆

1 个答案:

答案 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字符串连接。