モデルのphone
フィールドに国内電話番号を保存しています。User
番号を国際に変換する簡単な方法を実行しました。
私の質問は、このメソッドをこのように利用できるようにする方法です
@user.phone.to_international
私の現在ではなく
to_international(@user.phone.to_international,@user.phone.country)
これを達成する方法はありますか?
モデルのphone
フィールドに国内電話番号を保存しています。User
番号を国際に変換する簡単な方法を実行しました。
私の質問は、このメソッドをこのように利用できるようにする方法です
@user.phone.to_international
私の現在ではなく
to_international(@user.phone.to_international,@user.phone.country)
これを達成する方法はありますか?
これは機能しますが、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
to_internationalメソッドを使用してphoneというクラスを作成し、userクラスのphoneプロパティをphoneクラスのインスタンスに設定します。
モンキーパッチを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