0
我有一個具有link
屬性的模型。鏈接屬性可設置爲外部網址例如:http://google.com
或引用內部頁面,例如:/users/1
。鏈接字段的自定義驗證
表格link
只是一個沒有驗證的文本字段。它用link_to "whatever", model.link
呈現。
有很多軌道URI驗證的例子。但是,我沒有發現也沒有考慮相關路徑。我正在考慮使用正則表達式,但想知道是否有更好的方法來設置一個link
屬性,它可以處理外部(http/https)和內部(/ users/1,/ locations,/ whatever/1/something/2)路徑。
http://www.google.com
https://www.google.com
http://www.google.com?something=blah
http://www.google.com/thing/test/
/locations
/locations/1
/products/1/skus/4
"" (e.g. blank)
例子
例子
www.google.com
google.com
products/2
htt://
編輯
如果有更好的,完全不同解決這個問題我對此也持開放態度。
根據您對參考網址的要求,正則表達式將不夠用。 (如果用戶放置/谷歌會發生什麼?)會建議爲所有網址制定一套統一的規則。 – rb512
它不一定非常嚴格。這個工具只能由管理員訪問,所以我只是想要達到最低限度的驗證。如果他們輸入了'/ google',那麼它會想要一個不存在的頁面並將其重定向到404。我想要完成的是確保管理員遵循正確的格式,並且不會意外地錯過斜線或者其他的東西。 –