繁体   English   中英

在登录时设计一个会话变量

[英]Set a session variable in devise on sign in

我想在用户基于User表中的某个字段登录后设置会话变量。 如果不需要,我不需要创建自定义Devise控制器。 有办法吗? 还是我必须走定制控制器路线?

有一个after_sign_in_path_for回调,您可以在ApplicationController添加它

protected

def after_sign_in_path_for(resource)
  session[:domain_prefix] = current_user.domain_prefix
  user_path(resource)
end

不要忘记在方法的最后一行返回路径,否则回调会将请求重定向到session[:domain_prefix]

这个怎么样:

我要看的第一个资源是http://github.com/plataformatec/devise/wiki/How-To:-Redirect-to-a-specific-page-on-successful-sign-in 另外,请查看使用Rails devise gem成功注册后如何重定向到特定页面? 一些想法。

您可以执行以下操作:

def after_sign_in_path_for(resource_or_scope)
  session[:account_type] = current_user.account_type

end

您可以在ApplicationController或自定义RegistrationsController中实现此方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM