Ruby on rails restful_身份验证中的DoubleRenderError,在激活用户时作为_状态_机器

Ruby on rails restful_身份验证中的DoubleRenderError,在激活用户时作为_状态_机器,ruby-on-rails,ruby,authentication,restful-authentication,Ruby On Rails,Ruby,Authentication,Restful Authentication,在一个使用restful\u身份验证和acts\u as\u state\u machine和电子邮件激活的项目中,每当用户从电子邮件链接执行激活操作时,我都会收到一个双重呈现错误 我正在使用默认值 def activate self.current_user = params[:activation_code].blank? ? false : User.find_by_activation_code(params[:activation_code]) if logged_in?

在一个使用
restful\u身份验证
acts\u as\u state\u machine
和电子邮件激活的项目中,每当用户从电子邮件链接执行激活操作时,我都会收到一个双重呈现错误

我正在使用默认值

def activate
   self.current_user = params[:activation_code].blank? ? false : User.find_by_activation_code(params[:activation_code])
   if logged_in? && !current_user.active?
   current_user.activate!
   flash[:notice] = "Signup complete!"
   end
   redirect_back_or_default('/')
end
def redirect_back_or_default(default)
  redirect_to(session[:return_to] || default)
  session[:return_to] = nil
end
要激活,请单击默认设置

def activate
   self.current_user = params[:activation_code].blank? ? false : User.find_by_activation_code(params[:activation_code])
   if logged_in? && !current_user.active?
   current_user.activate!
   flash[:notice] = "Signup complete!"
   end
   redirect_back_or_default('/')
end
def redirect_back_or_default(default)
  redirect_to(session[:return_to] || default)
  session[:return_to] = nil
end
重定向。重定向方法在其他任何情况下都可以工作,它的调用方式相同

双渲染错误发生在页面主页/主页的渲染处,该主页被路由为“/”


我应该寻找什么?

作为状态机有时会有一些奇怪的行为,即写入数据库的已保存记录将与内存中的对象不同步。我敢打赌,在这种情况下,与新激活的用户相对应的ruby对象不会被更新,即使db中的字段正在被设置(反之亦然)


我需要查看实际运行的控制器操作,以呈现您设置的与“/”匹配的路由,但我打赌您在该操作中遇到了微妙的不一致情况,这些情况正被AASM中的这种不一致性所绊倒。尝试在控制器操作开始时重新加载用户对象,以查看问题是否消失。如果不开始调试,请确保您的状态更改实际上已保存到数据库。

充当状态机有时会出现一些奇怪的行为,即写入数据库的已保存记录将与内存中的对象不同步。我敢打赌,在这种情况下,与新激活的用户相对应的ruby对象不会被更新,即使db中的字段正在被设置(反之亦然)

我需要查看实际运行的控制器操作,以呈现您设置的与“/”匹配的路由,但我打赌您在该操作中遇到了微妙的不一致情况,这些情况正被AASM中的这种不一致性所绊倒。尝试在控制器操作开始时重新加载用户对象,以查看问题是否消失。如果没有,请确保您的状态更改实际上已保存到数据库中,以开始调试