2012-05-07 17 views
0

我正在嘗試創建一個小型系統,用戶可以在其中填寫信息,包括他們的網站地址。只有一些人會進入「www.example.com」,一些人會進入「http://www.example.com」,一些人會進入「example.com」。如何在Ruby中構建完整的URL

什麼是最乾淨的方式:

  • 驗證人的網址,在這個意義上,它們都包括http://所以當我點擊它,我得到了正確的重定向,並且還

  • 對於鏈接上的可見文本,獲取沒有http://的版本的最簡單方法是什麼?

我當然可以爲一些有條件的文本替換瘋狂,但必須有一個更好的方法來做到這一點。

回答

2

我會以這種方式檢查該地址是否以http(s)://開頭,如果不是,則添加它。不要對example.comwww.example.com做任何事情,因爲它可能會破壞整個地址。

所以你可以這樣寫:

url = 'http://' + url unless url =~ /\Ahttps?:\/\// 
+1

說得更加清楚,'www.blah.com'和'blah.com'可能是兩個完全不同的地址;不要對此做任何事情。添加'http://',但只有當方案已經存在時*(如果他們輸入了「https://」?)。 – Ashe

+0

@恩 - 你有一點。 – Hauleth

0

我推薦使用這種寶石 - 我們沒有理由去嘗試寫這一切你自己。

下面是一個可能適合您的需求。可能還有其他,但是這一次似乎是有用的,有一個體面的下列情況:

https://github.com/conickal/validates_url_format_of