Я пытаюсь сохранить сайт, с которого пришел пользователь, когда он регистрируется. Прямо сейчас у меня есть pre_filter в моем ApplicationController:
before_filter :save_referer
def save_referer
unless is_logged_in?
session['referer'] = request.env["HTTP_REFERER"] unless session['referer']
end
end
Затем, когда пользователь создается, он проверяет эту переменную сеанса и устанавливает ее в nil. Иногда это не работает, и я беспокоюсь, что могут случиться какие-то непреднамеренные действия, связанные с использованием сеанса. Кто-нибудь имеет лучший способ? Или какой-нибудь ввод возможно?
EDIT: это логика, которую я использую для сохранения референта:
def create
@user = User.new(params[:user])
if @user.save_with(session[:referer])
....
end
Пользователь
def save_with(referer)
self.referer = referer unless referer == "null"
self.save
end
Есть ли причина, почему это не должно работать?