我将电话号码保存为phone
型号User
字段上的国内电话号码。
我做了一个快速的方法将数字转换为国际。
我的问题是如何使这个方法像这样
@user.phone.to_international
而不是我目前的
to_international(@user.phone.to_international,@user.phone.country)
知道怎么做才能做到这一点?
答案 0 :(得分: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
答案 1 :(得分:2)
使用to_international方法创建一个名为phone的类,并将用户类中的phone属性设置为手机类的实例。
答案 2 :(得分:0)
Monkey修补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