Zub*_*Man 3 ruby redirect ruby-on-rails devise
我有一个用户三种可能的权限是在我的Rails应用程序,它们是User.is_admin,User.is_school和User.is_security。根据我的应用程序的性质,我需要为每个做完全不同事情的用户有一个单独的主屏幕,我正在工作。我遇到的问题与所有用户登录后设计如何自动重定向到 root_path 相关,而不管我设置的权限如何。
我将 Devise Sessions 控制器生成到 Users 命名空间中,并将其覆盖为默认为我的控制器,但是现在当我尝试根据条件权限进行重定向时,我得到了一个DoubleRenderError(明显的原因是 Devise 正在其他地方重定向创建会话时)。
我已经尝试将它作为 after_action 运行,甚至尝试after_sign_in_path_for按照 Devise 文档的方向覆盖该 方法,但我仍然无法让它工作。任何帮助将不胜感激,谢谢!
你可以做这样的事情
class ApplicationController < ActionController::Base
def after_sign_in_path_for(resource)
if resource.role == 'admin'
admin_root_path
else
user_root_path
end
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2203 次 |
| 最近记录: |