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
Then when a user is created, it checks this session variable and sets it to nil. Sometimes this does not work and I'm worried there might be some unintended things happening with using session like this. Does anyone have a better way? Or some input perhaps?
EDIT: This is the logic I am using to save the referer:
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
Is there any reason why this should not work?
create
action and just replace it all with the code in the accepted answer in your application controller? Do you still use the methodsave_with(referer)
for instance? I am trying to do the same thing, so would love to know how you were able to solve this, if you did. Thanks. – Kendry