Reputation: 2742
I have an url
domain.com/a
which redirects to
domain.com/controller/action/a
.
How do I get the referrer (i.e domain.com/a) in my action for domain.com/controller/action/a ?
One option was to add the referring domain as a parameter .
domain.com/controller/action/a?referral=domain.com/a
.
Is there a way to get the referrer without passing old referrer as a parameter. Like we would get from **request.referrer**
. request.referrer doesn't seem to work with redirected urls.
I am using Ruby on Rails for my development.
Upvotes: 14
Views: 11013
Reputation: 495
May be late, but just to add on. I think it is important to remove the session after using it.
redirect_to session.delete(:referrer)
Upvotes: 0
Reputation: 3959
I store the referrer path in the session right before redirection
session[:referrer]=url_for(params)
and then use it where I need it via session[:referrer]
.
Upvotes: 11
Reputation: 309
We use this line in our application_controller.rb to save the http_referer when a visitor visits our site:
session[:http_referer] = request.env["HTTP_REFERER"]
Later on, we will save the value into our model for tracking.
Upvotes: 4
Reputation: 1349
I believe you are looking for the request.referrer
property: http://rack.rubyforge.org/doc/classes/Rack/Request.html#M000280
Upvotes: 9