私のユーザーは自分のウェブサイト、Facebook、およびTwitterのURLをプロフィールに追加することができます。Ruby on rails。存在しない場合はfacebook.com/をURLに追加してください
完全なURL(http://www.facebook.com/USERNAME
)またはURLの一部を入力するようにしたいとします。 www.facebook.com/ USERNAME
またはUSERNAME
と入力し、必要に応じてhttps://facebook.com/を自動的に追加してください。私は、httpをしたい://は、のように入力されたURLは、私が持っているウェブサイトのURLのために自分のウェブサイト/ログインfacebookなど
に直接リンクされます:
before_validation :add_url_protocol
def add_url_protocol
if self.website && !url_protocol_present?
self.website = "http://#{self.website}"
end
end
def url_protocol_present?
self.website[/\Ahttp:\/\//] || self.website[/\Ahttps:\/\//]
end
さらに正規表現検証は、次にあります。 これは正常に動作します。
私は正規表現についてのアイデアはあまりなく、このbefore_validation
コードにfacebook.com/の部分を追加する方法は不明です。
ご協力いただきありがとうございます。
UPDATE:
def add_url_protocol
if self.website && !url_protocol_present?
self.website = "http://#{self.website}"
end
if self.facebook && !url_facebook_present?
self.facebook = "http://facebook.com/#{self.facebook}"
end
end
これはほとんど作品。ユーザーがUSERNAME
を入力した場合、出力は良好です。ユーザ入力がUSERNAME
をwww.facebook.com/場合、出力に含まあなたがActiveModel::Model
を含むことにより、使用して独自のロールか何かを使用することができ、http://facebook.com/www.facebook.com/USERNAME
あなたは「self.website = "http://facebook.com/#{self.username}" 'と混同しましたか? –
ほとんどの場合、ユーザーがwww.facebook.com/USERNAMEを入力すると、出力はhttp://www.facebook.com/www.facebook.com/USERNAMEになります –