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

Ruby on rails 在登录时设计中设置会话变量,ruby-on-rails,ruby-on-rails-3,devise,Ruby On Rails,Ruby On Rails 3,Devise,我想在用户基于用户表中的某个字段登录后设置一个会话变量。如果不需要的话,我不想创建自定义的Desive控制器。有办法吗?还是我必须走自定义控制器路线 有一个回调,您可以将其添加到您的ApplicationController protected def after_sign_in_path_for(resource) session[:domain_prefix] = current_user.domain_prefix user_path(resource) end 不要忘记在方法

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

有一个回调,您可以将其添加到您的
ApplicationController

protected

def after_sign_in_path_for(resource)
  session[:domain_prefix] = current_user.domain_prefix
  user_path(resource)
end
不要忘记在方法的最后一行返回路径,否则回调会将请求重定向到
会话[:domain\u prefix]

的内容,这个如何:

我要看的第一个资源是。另外,请查看一些想法

您可以执行以下操作:

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

end

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

他要求在登录时添加一个新的会话变量,例如:在会话中保留用户名。{我的例子完全没用,但我认为这是他想要的。}谢谢,这肯定行得通。我似乎不知道默认路径是放在最后一行。。。在这方面我想表现得像平常一样。