登录时在设计中设置会话变量

我想在用户根据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]内容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中实现此方法。