属性を持つモデルがありlink
ます。link 属性は、外部 URL に設定することもhttp://google.com
、内部ページを参照することもできます/users/1
。
フォームlink
には、検証のない単なるテキスト フィールドがあります。でレンダリングされlink_to "whatever", model.link
ます。
Rails の 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://
編集
これに対するより良い、完全に異なるアプローチがあれば、私はそれも受け入れます。