1
(1)「主持人」與網站上的「廣告系列」共享一個鏈接,例如: /活動/ 17如何存儲哪些頁面未登錄的用戶從rails中抵達
(2)/運動/供簽署的訪客的東西有17次點擊,這只是在/簽約用戶,並帶到登錄/註冊頁面
我想(例如17)存儲在新用戶的參數(我正在考慮使用隱藏字段)中,但不知道如何保存該ID。我曾考慮過request.path,但不知道如何將其傳遞到下一頁。
(1)「主持人」與網站上的「廣告系列」共享一個鏈接,例如: /活動/ 17如何存儲哪些頁面未登錄的用戶從rails中抵達
(2)/運動/供簽署的訪客的東西有17次點擊,這只是在/簽約用戶,並帶到登錄/註冊頁面
我想(例如17)存儲在新用戶的參數(我正在考慮使用隱藏字段)中,但不知道如何保存該ID。我曾考慮過request.path,但不知道如何將其傳遞到下一頁。
這是我如何解決這個問題。我假設你的應用程序控制器內部有一些類型的身份驗證方法。
內,您的應用程序控制器,具有類似如下:
def authenticate
unless current_user
session[:protected_destination] = request.fullpath
flash[:notice] = "You're not logged in."
redirect_to login_path
return false
end
end
然後,在你登錄邏輯,你必須有一個像下面的一些代碼。對我而言,因爲我使用Authlogic,登錄發生在UserSession控制器中。
def new
session[:protected_destination] ||= request.referrer || root_path
if current_user
redirect_to session[:protected_destination]
session[:protected_destination] = nil
else
@user_session = UserSession.new
end
end
def create
@user_session = UserSession.new(params[:user_session])
if @user_session.save
protected_destination = session[:protected_destination] || root_path
session[:protected_destination] = nil
redirect_to protected_destination
else
render :action => :new
end
end
正如你所看到的,你想要去的目的地存儲在會話中。當你登錄時,它會檢查你是否要去某個地方,然後在那裏重定向你。如果沒有,它只會帶你到根網址。
希望有所幫助。
感謝您的貢獻。我現在有這樣的設置,這非常棒。我希望添加的是,當用戶註冊時,可以將'campaign_id'存儲在'users'表中 - campaign_id由用戶到達的活動頁面給出 – WillLA
您是否嘗試過使用某種連接表?我個人贊成有:,通過關係。你可以做的是創建一個名爲CampaignRelation的新模型,它屬於活動並屬於用戶。然後,在您的身份驗證方法中,如果用戶未登錄,則可以將該活動ID存儲在會話中。登錄時,如果會話中有活動ID,則創建屬於目標Campaign和新登錄用戶的新CampaignRelation。那有意義嗎? – Max
這非常有趣 - 但是,這些訪問者還沒有註冊,我有興趣提供正確的活動ID作爲其用戶帳戶的屬性,一旦他們註冊(即他們遵循的活動是由他們在成爲會員之前首次訪問的活動頁面)。不知道你的解決方案如何在這種情況下工作。謝謝! – WillLA