Forum: Ruby on Rails Advanced routing question.

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
B614e42d18c609ac4585d0aa0b13d856?d=identicon&s=25 Jim Jeffers (Guest)
on 2005-12-14 20:58
(Received via mailing list)
Hello All,

I'm making a quick application that tracks outgoing links to referral
sites.  I need to track the user and the url they went to so the
easiest way would be to take the entire url as a parameter and log
that into the database.  I was wondering if I could do something like
this with routing:

http://www.example.com/user/jump/http://www.myvend...?
id=23ijo23jnjknbdc&uid=32lknklfelkj32

user => controller
jump => action
http://www.myvendor.com/referral.php?
id=23ijo23jnjknbdc&uid=32lknklfelkj32 => string/parameter

I don't know it's possible to do this because the url itself contains
'/'.  Any ideas?
Fe9b2d0628c0943af374b2fe5b320a82?d=identicon&s=25 Eero Saynatkari (rue)
on 2005-12-14 21:45
Jim Jeffers wrote:
> Hello All,
>
> I'm making a quick application that tracks outgoing links to referral
> sites.  I need to track the user and the url they went to so the
> easiest way would be to take the entire url as a parameter and log
> that into the database.  I was wondering if I could do something like
> this with routing:
>
> http://www.example.com/user/jump/http://www.myvend...?
> id=23ijo23jnjknbdc&uid=32lknklfelkj32
>
> user => controller
> jump => action
> http://www.myvendor.com/referral.php?
> id=23ijo23jnjknbdc&uid=32lknklfelkj32 => string/parameter
>
> I don't know it's possible to do this because the url itself contains
> '/'.  Any ideas?

You should be able to use the 'generic URL' form of routing:

  map.connect 'user/jump/*path', # ...

This way, params[:path] will have the path information.

You will almost certainly want to URI.encode(url_string)
when generating the links and it might not be a bad idea
to Base64-encode it as well, just to avoid any problems:

  require 'base64'

  url = Base64.decode64(Base64.encode64(url))


E
B614e42d18c609ac4585d0aa0b13d856?d=identicon&s=25 Jim Jeffers (Guest)
on 2005-12-15 03:55
(Received via mailing list)
Thanks a lot Eero!

----------------------------------------
Jim Jeffers
"A trustworthy individual."
www.DontTrustThisGuy.com
(480) 235-5201
B614e42d18c609ac4585d0aa0b13d856?d=identicon&s=25 Jim Jeffers (Guest)
on 2006-01-09 08:30
(Received via mailing list)
Hey guys,

I want to create a program that automatically edits alll links on a
template to pass through a redirect action so that I can track a
users click through in a centralized affiliate program.  The problem
I'm running into is that I basically am appending the entire url to
the end of the redirect url so I want rails routing to ignore the
path and leave it intact. So I tried out the following routing scenario:
map.connect 'jump/:id/*path', :controller => 'jump', :action =>
'send_to'

To handle redirects such as:
http://localhost:3000/jump/JIM/http://click.linksy...
click?id=a7YZwGZeWSw&offerid=95247.10000349&type=4&subid=0&u1=JIM

But what ends up happening is I get path returned as an array that
was separated by '/' and each of the items in the query string are
broken into individual params.  Any one have any idea how to avoid
this?  Or is there a better way?

- Jim
This topic is locked and can not be replied to.