當用戶訪問他們未被授權查看的頁面時,他們被重定向到登錄頁面。登錄後,他們被重定向到站點根目錄。有沒有一種快速簡單的方法將他們重定向回他們最初要求的頁面?cancan/devise - 重定向到請求的路徑
1
A
回答
3
你可以添加一個隱藏字段referring_page
您sign_in
- 形式的former
引薦,即場和迴路由添加到那裏,如果其現有的,像這樣:
def after_sign_in_path_for(resource)
params[:referring_page] || super
end
這是一個手動解決方案,但我把它更喜歡使用在控制器端複雜的邏輯。
1
我不明白你到底想要達到什麼目的,說:「如果用戶訪問他們沒有被授權查看的頁面,他們會被重定向到登錄頁面。登錄後他們被重定向到站點根目錄」
我認爲將會有兩套用戶之一是管理 - 用戶和其他非管理員用戶我處理這將是這樣的方式,
內部應用控制器
class ApplicationController < ActionController::Base
protect_from_forgery
check_authorization :unless => :devise_controller?
before_filter :authenticate_user!
rescue_from CanCan::AccessDenied do |exception|
redirect_to root_url, :alert => exception.message
end
protected
def stored_location_for(resource_or_scope)
nil
end
def after_sign_in_path_for(resource_or_scope)
if current_user.admin?
#add your desired path
else
#redirect to your desired path
end
end
end
相關問題
- 1. Symfony2:重定向到請求的路徑
- 2. 如何nginx的請求重定向到不同的路徑
- 3. 將所有請求重定向到IIS中的路徑
- 4. 將請求重定向到路由器
- 5. CloudFront重定向路徑前綴的所有請求
- 6. Apache重定向來自域名+路徑的請求
- 7. 路徑重定向
- 8. 通過路由重定向請求sails.js
- 9. 在Selenium中阻止或重定向請求到特定路徑或域
- 10. 如何將請求重定向到基於亞馬遜S3路徑的子域
- 11. ASP.Net - 將任何請求重定向到同一路徑的另一個域
- 12. 重定向請求
- 13. 如何重定向到特定路徑?
- 14. 重新路由請求不發送重定向到客戶端
- 15. MVC 2.0路線,重定向請求,請求忽略
- 16. 檢測到循環重定向路徑(詳情請參閱「重定向路徑」部分)
- 17. 如何在重定向Express 4之前找到原始請求路徑4
- 18. 後/重定向/獲取:重定向到特定路徑
- 19. mod_rewrite規則重定向除一個特定路徑以外的所有請求
- 20. EmberJS - 將父路徑重定向到其嵌套的子路徑
- 21. 重定向到路徑以「/」結尾
- 22. 無法重定向到路徑?
- 23. will_paginate重定向到根路徑
- 24. 重定向到錯誤路徑Phalcon
- 25. 使用AJAX重定向到rails路徑
- 26. 按鈕重定向到錯誤路徑
- 27. htaccess重定向到完整路徑url
- 28. Apache rewritemod重定向到實時路徑
- 29. 將url路徑重定向到端口
- 30. window.onbeforeunload並重定向到根路徑