2012-03-12 6 views
1

私はここで紛失しています。私は、私は1つのユーザーテーブルとマメ科植物、果物、および野菜のテーブルを持っている3つの工夫スコープ(マメ科植物、野菜、&果物)私はDeviseからログアウトするとユーザーが破壊されます

を持ってそれを参照:

  • ユーザーは1マメ科植物、果物、そして野菜
  • を持っています
  • マメ科、果物、そして野菜は、ユーザー

に属し、私は3つのスコープの2でちょうど罰金を出しログアウトすることができるよ、しかし、そこに私がログアウト1つのスコープ(果物)は、私のユーザーがから消去されますデータベース。ログアウトすると、このエラーメッセージが表示されます。

行方不明翻訳:私は次のコードを使用して、ログアウトしています

をen.devise.sessions.fruit.destroyed:ここ

link_to "Logout", destroy_fruit_session_path, :method => "delete" 

はログに出力されます。

2012-03-11 21:43:58 -0400に127.0.0.1のDELETE "/ fruits/logout"が開始されました Processin fruits :: SessionsController#は、HTMLとして破棄します。 パラメータ:{"authenticity_token" => "2MwwcPF4NTWUUXDXiAh + v0B85CPNeUrW + R7S78FWo9E ="} ユーザロード(0.8ms)SELECT "users"。* FROM "users" WHERE "users"。 "id" = $ 1 [["" id "、335]] (1.3ms)COMMIT (" 0 ")"ユーザー "から削除するSQL(0.6ms) http://localhost:3000/fruit/login

うわにリダイレクト!私はとても愚かな気がする!私は自分自身の問題を理解しており、かなり恥ずかしいです...

私のSessionsControllerをDevisesのSessionControllerで上書きするのではなく、私は誤って、破棄時にユーザーを削除するRegistrations Controllerでそれをオーバーロードします。

私は

#incorrect!!! 
    class Fruits::SessionsController < Devise::RegistrationsController 

代わりの

#correct... 
    class Fruits::SessionsController < Devise::SessionsController 
+0

:method => :delete 

をやってみましたあなたはDeviseの破壊論理を無効にしていないと言いますが、Deviseの他のものを上書きしましたか? –

+0

私は最後の手段としてDeviseをオーバーライドします。私は通常それを使って作業しようとします。 –

+0

OMFG ...私はまったく同じばかなことをしました(コピー&ペーストの危険性) – kitwalker

答えて

0

あなたが代わりに

:method => "delete" 
関連する問題