簡體   English   中英

注冊后重定向

[英]Redirect after the sign up

我試圖在注冊后通過保存引用人來重定向用戶,以防用戶單擊任何特定頁面進行注冊。 但是它不能正常工作。

在我的應用控制器中

def save_referer
  unless user_signed_in?
    unless session['referer']
      session['referer'] = request.referer || 'none' 
    end
  end
end

在用戶模型中

def save_with(referer)
  referer = referer unless referer == "null"
  self.save
end 

我在這里保存它

if current_user.sign_in_count <= 1
  if current_user.save_with(session[:referer])
    redirect_to session[:referer]
  else
    redirect_to any_other
  end

在用戶模型中,我想您沒有正確地正確引用該屬性。

def save_with(referer)
  self.referer = referer unless referer == "null"
  self.save
end

通常,我采取以下策略:

在任何有注冊按鈕的地方,我都可以這樣鏈接到注冊:

<a href="/signup?signup_refer=/current_path">Signup!</a>

然后在我的注冊操作中執行以下操作:

def signup
  session[:signup_refer] = params[:signup_refer] if params[:signup_refer] # put the refer in a session
  redirect_to(signup_path) if session[:signup_refer] && params[:signup_refer] # this clears params if you want to keep your url nice an clean for the user
  # do signup stuffs
  signup_refer = session[:signup_refer] # get the refer info in a variable
  session[:signup_refer] = nil # clear the session before redirecting
  redirect_to(signup_refer ? signup_refer : "/default_post_signup")
end

我知道這可能很麻煩,但是它完全適合我(在Merb中很好用,在這里它是“ redirect()而不是redirect_to() )),但是您明白了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM