2014-08-28 39 views
0

我正在使用設計用戶註冊。我設置了一個自定義編輯頁面'/ info'作爲額外的註冊頁面。唯一的問題是您在信息頁面上提交編輯後重定向到用戶配置文件。我可以將其重定向到主頁(我想要在/ info之後),但是它也會從正常編輯頁面重定向到主頁。我不確定如何根據用戶所在的頁面進行重定向。從定製設計編輯頁面重定向

我的一個想法是讓用戶當前的路徑和使用if語句,但我一直無法得到它的工作。

registrations_controller.rb:

def update 
... 
current_uri = request.env['PATH_INFO'] 

if current_uri == '/info' 
    redirect_to root_path, notice: "Welcome" 
else 
    redirect_to user_path(@user) 
end 

end 

通常它只是看起來像這樣:

def update 
... 
redirect_to user_path(@user) 
end 

回答

0

的問題似乎是,你需要保持周圍的數據來確定重定向到哪裏。一些想法:

  1. 當用戶訪問上一頁時,您可以將數據存儲在會話中,並在您的操作中檢查此數據以確定重定向用戶的位置。會話通常是存儲請求之間一致的事情的便利場所,但不應該持久保存到數據庫中。
  2. 您可以將數據存儲在數據庫中(例如,向您的用戶模型添加標誌)並檢查此位置以確定重定向的位置。
  3. 您可以檢查request.referer並根據其中的值重定向。這可能不如可靠。
+0

我與你最後的建議去了,但我似乎無法得到它的工作。在控制器中,我有'如果URI(request.referer).path =='/ users/sign_up''但似乎沒有任何影響。奇怪,因爲我很直接從這裏(http://stackoverflow.com/questions/5819721/how-to-get-request-referrer-path) – user2759575 2014-08-28 03:16:54

+0

你可以驗證什麼URI(request.referer).path是?也許這個字符串不是你所期待的。 – Puhlze 2014-08-28 13:39:01

+0

嗯,是在視圖<%= URI(request.referer).path%>給我一個'錯誤的參數(期望的URI對象或URI字符串)'錯誤。 – user2759575 2014-08-28 17:10:36