サインアップ時にユーザーがアクセスしたサイトを保存しようとしています。現在、ApplicationControllerにbefore_filterがあります。
before_filter :save_referer
def save_referer
unless is_logged_in?
session['referer'] = request.env["HTTP_REFERER"] unless session['referer']
end
end
次に、ユーザーが作成されると、このセッション変数をチェックしてnilに設定します。これが機能しない場合があり、このようなセッションを使用すると、意図しないことが発生する可能性があるのではないかと心配しています。誰かがより良い方法を持っていますか?または、おそらくいくつかの入力?
編集:これは私がリファラーを保存するために使用しているロジックです:
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
これが機能しない理由はありますか?