我希望用戶能夠輸入網址,然後在我的視圖中輸入鏈接到該網址。將用戶輸入的網址導入到外部鏈接中
有效的輸入可能是e.x. https://www.google.com/path
,http://www.google.com
,www.google.com
是有標準導軌方式1)驗證輸入是有效的URL格式和2)轉換是第三格式http://www.google.com
在我的意見,使外部鏈接的作品?
如果我能避免它,我不想重新發明輪子。
我希望用戶能夠輸入網址,然後在我的視圖中輸入鏈接到該網址。將用戶輸入的網址導入到外部鏈接中
有效的輸入可能是e.x. https://www.google.com/path
,http://www.google.com
,www.google.com
是有標準導軌方式1)驗證輸入是有效的URL格式和2)轉換是第三格式http://www.google.com
在我的意見,使外部鏈接的作品?
如果我能避免它,我不想重新發明輪子。
檢查了這一點:
validates_format_of :website, :with => URI::regexp(%w(http https))
來源:http://intridea.com/2009/2/18/quick-tip-url-validation-in-rails?blog=company
要格式化丟失的協議(HTTP或HTTPS)的URL,我會做一個before_save掛鉤,預先考慮它,如果它的丟失:
before_save :format_url
...
def format_url
self.website = "http://#{self.website}" unless self.website[/^https?/]
end
哦,這真的很酷。我知道URI庫,但不知道如何使用它。我把format_url放在before_validation中,這樣www.google.com就可以解析,但是在Rails 4中這似乎很完美 – spike
,輸入的修改需要在'validates:website validation'驗證前發生: {}工作 – lhagemann