On Tue, Feb 10, 2009 at 6:56 PM, Max Williams < rails-mailing-l...@andreas-s.net> wrote:
> > In our site, users can have a url associated with their account to which > they are redirected when their login expires. This can differ from user > to user, and is prone to being mis-copied, or the sites in question not > being there any more etc. I'd like to test if the url is valid before > sending the user on to it. > > So, i want, in the controller, to do something like this - > > if external_url_is_valid?(user.expiry_url) > redirect_to user.expiry_url > else > redirect_to "our_default_expiry_page" > end > > Can anyone tell me a nice, simple and efficient way of doing the > "external_url_is_valid?" bit? > -- > Posted via http://www.ruby-forum.com/. > > > > require 'net/http' require 'uri' def external_url_is_valid?(url) uri = URI.parse(url) response = Net::HTTP.start(uri.host, uri.port) {|http| http.head(uri.path)} response.is_a?(Net::HTTPSuccess) || response.is_a?(Net::HTTPRedirection) end Watch the validity of the url - www.google.com is not valid http://www.google.com also won't work, http://www.google.com/ will I wouldn't do this at the point of redirection, I would do it at the point of saving the redirection url Andrew Timberlake http://ramblingsonrails.com http://www.linkedin.com/in/andrewtimberlake "I have never let my schooling interfere with my education" - Mark Twain --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk@googlegroups.com To unsubscribe from this group, send email to rubyonrails-talk+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en -~----------~----~----~----~------~----~------~--~---