Rails - 在保存到数据库之前从 phone 输入的表单提交中删除特殊字符

Rails - Remove special characters from phone input on form submission before saving to db

在将表单写入数据库之前提交表单时,如何更改特定字段的输入?我希望能够采用用户提交的任何 phone 数字格式,并在保存到数据库之前从中删除所有特殊字符和空格。然后我将在我的视图中使用 number_to_phone 方法来格式化我想要的数字。

您可以在 ruby 中使用 gsub 方法从包含 phone 编号的字符串中删除所有空格、连字符和其他字符。 如需进一步阅读和使用,请参阅 [APIdock]http://apidock.com/ruby/String/gsub).

中的条目

覆盖 setter 并使用正则表达式,因此如果您的模型是用户并且字段是 phone_number

class User < ActiveRecord::Base
  def phone_number=(value)
    super(value.blank? ? nil : value.gsub(/[^\w\s]/, '')) 
  end
end