2013-04-03 72 views
0

我正在開發使用Devise作爲我的身份驗證系統的Rails 3.2.12應用程序。除非我嘗試在應用程序中註冊後自動登錄新用戶,否則一切正常。嘗試登錄後使用Devise關閉數據庫連接

這是我做我的控制器來實現這一目標是什麼:

... 
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 

當它試圖執行sign_in,我收到以下錯誤:

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

看來,因爲它是試圖刪除當前會話,這就是該錯誤的原因...

任何想法我做錯了什麼?

非常感謝喲提前!

回答

0

用戶註冊後,他們將自動使用股票設計登錄。實際上,您不需要爲默認設備設置編寫任何控制器代碼。

也就是說,如果由於某種原因,你真的需要一個定製的控制器,你可以嘗試先迫使signout:

sign_out(resource_name) 
+0

感謝您的答覆@Felix,但恐怕它仍然給我的錯誤。 – bigardone