Hi,
I have a User table that has a Website column.
In the form I would have the user type in the URL to their website.
If they type the full-blown address "http://www.example.com " then
"link_to @user.website , @user.website " will work out of the box.
However, if they type in "www.example.com" then the above code would
display something like: localhost:3000/controller/action... something
like that.
How do I make it that no matter what the user type it, link_to would
take them to an external site?
Sorry if this sounds like a too basic question.
Thanks.
You could check what the user enters and add the http:// if they have
not provided it, either on the way into the database or out of it.
Colin
Mukund
(Mukund)
August 26, 2009, 10:04am
3
Depends on the protocol for the websites. It is difficult to parse
all possible protocols. Assuming you are only talking about http, you
can do something like
regex = /^(https?:\/\/)/
@user.website = "http://" + @user.website unless regex.match(website)
11175
(-- --)
August 26, 2009, 10:58am
4
How do I make it that no matter what the user type it, link_to would
take them to an external site?
Sorry if this sounds like a too basic question.
Thanks.
do this no matter what URL user enters it will take him to correct page
regex = /https?:\/\/(.*)/.match(@user.website )
if regex==nil
link_to @user.website ,"http://#\{@user .website}", :popup
=>"true"
else
link_to @user.website ,"#{@user.website }", :popup =>"true"