I’m trying to save the site that a user came from when they sign up.
Right now I have a before_filter in my ApplicationController:
before_filter :save_referer
def save_referer
unless is_logged_in?
session[‘referer’] = request.env[“HTTP_REFERER”] unless
session[‘referer’]
end
end
def create @user = User.new(params[:user])
if @user.save_with(session[:referer]) … end
User def save_with(referer) self.referer = referer unless referer ==
“null” self.save
end
Then when a user is created, it checks this session variable and sets
it to nil. This is buggy as it only works sometimes and I cannot seem
to figure out why. Any ideas what could be going on?
Then when a user is created, it checks this session variable and sets
it to nil. This is buggy as it only works sometimes and I cannot seem
to figure out why. Any ideas what could be going on?
Because HTTP_REFERER is not a required header, and in fact
some security software blocks it for privacy reasons.
Aha, is there any way to figure out where a user comes from every
time?
Short answer: no
Longer and probably not better answer: if by “every time” you mean
100% certainty, no BUT you could spend an interesting amount of
money approaching, on a very steep curve, that point.
Or so I’d think. But really, for the purposes of this discussion: no