Ala*_*ann 17 ruby-on-rails devise ruby-on-rails-3
我试图弄清楚如何使用Warden/Devise将用户重定向到他们登录的页面(或登录失败).我认为某个会话变量可用或可用.
例如,场景1:未授权用户进入受保护的页面X; 重定向到登录页面; 用户登录; 用户重定向到受保护的页面x
场景2:未授权用户希望在第x页上采取受保护的操作; 用户点击登录链接; 用户登录; 用户重定向到页面x,其中操作现在可用
任何指针都表示赞赏.
谢谢!
小智 13
有一个名为after_sign_in_path_for(resource)(http://rdoc.info/github/plataformatec/devise/master/Devise/Controllers/Helpers)的设计辅助方法,以及一个名为session[:"user.return_to"]存储最后一个网址的会话变量.该after_sign_in_path_for方法需要返回一个字符串,然后设计自动使用此路径在登录后重定向用户.
在我的应用程序控制器中,如果未设置会话变量,我已将以下内容重定向到主页:
def after_sign_in_path_for(resource)
(session[:"user.return_to"].nil?) ? "/" : session[:"user.return_to"].to_s
end
Run Code Online (Sandbox Code Playgroud)