当用户访问他们未被授权查看的页面时,他们被重定向到登录页面。登录后,他们被重定向到站点根目录。有没有一种快速简单的方法将他们重定向回他们最初要求的页面?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并重定向到根路径