2

私はRubyに比較的慣れていません。これはドライアップできますか?そしてどうやって?

def primary_phone
  number_to_phone self.primary_phone_number
end

def primary_phone=(number)
  self.primary_phone_number = number.gsub(/\D/, '')
end

def secondary_phone
  number_to_phone self.secondary_phone_number
end

def secondary_phone=(number)
  self.secondary_phone_number = number.gsub(/\D/, '')
end

def fax
  number_to_phone self.fax_phone_number
end

def fax=(number)
  self.fax_phone_number = number.gsub(/\D/, '')
end

Rails でこのコードを、数値を整数として格納するデータベースと、数値を文字列として入力するユーザー フォームとの間の一種のバッファーとして使用しています。

4

1 に答える 1

7

あなたに必要なのは、

before_save :sanitize_phone_number_fields

def sanitize_phone_number_fields
  [:primary_phone, :secondary_phone, :fax].each{|attr| self.send(attr).gsub!(/\D/, '')}
end
于 2013-08-29T18:39:26.647 に答える