0

我正在使用 Devise 作为我的身份验证系统开发 Rails 3.2.12 应用程序。一切正常,除非我在新用户在应用程序中注册后尝试自动登录。

这就是我在控制器中实现这一目标的方法:

...
resource.save!

if resource.active_for_authentication?
  set_flash_message :notice, :signed_up if is_navigational_format?
  sign_in(resource_name, resource)
  respond_with resource, :location => redirect_location(resource_name, resource)
else
  ...
end

当它尝试执行登录时,我收到以下错误:

ActiveRecord::StatementInvalid in RegistrationsController#create
Mysql2::Error: closed MySQL connection: DELETE FROM `sessions` WHERE `sessions`.`id` = 684

似乎它正在尝试删除当前会话,这就是该错误的原因...

知道我做错了什么吗?

非常感谢你提前!

4

1 回答 1

0

用户注册后,他们将自动使用库存设备登录。事实上,您不需要为默认的设计设置编写任何控制器代码。

也就是说,如果由于某种原因你真的需要一个自定义控制器,你可以尝试先强制注销:

sign_out(resource_name)
于 2013-04-03T22:23:45.597 回答