0

モデルのphoneフィールドに国内電話番号を保存しています。User

番号を国際に変換する簡単な方法を実行しました。

私の質問は、このメソッドをこのように利用できるようにする方法です

@user.phone.to_international

私の現在ではなく

to_international(@user.phone.to_international,@user.phone.country)

これを達成する方法はありますか?

4

3 に答える 3

2

これは機能しますが、after_initializeが優れているかどうかはわかりません

これをユーザーモデルに追加します

after_find :prepare_phone

private
def prepare_phone
  def phone.to_international
    self.upcase # change with whatever you want. 'self' is the phone attr 
  end
end
于 2012-05-20T03:57:47.303 に答える
2

to_internationalメソッドを使用してphoneというクラスを作成し、userクラスのphoneプロパティをphoneクラスのインスタンスに設定します。

于 2012-05-20T04:02:07.510 に答える
-1

モンキーパッチをStringクラスに適用します。myapp/config/initializers/string_monkey_patches.rb追加で:

String.class_eval do
  PHONE_NUMBER_FORMAT = // # some regex matching a phone number
  def to_international
    raise 'Invalid phone number format' unless self.match(PHONE_NUMBER_FORMAT)
    # convert self (the phone number string) to an international number
  end
end
于 2012-05-20T04:52:08.120 に答える