2012-03-29 12 views
0

私は同じユーザーが同じアカウントに接続されている他のユーザーを破棄できるアプリケーションを持っています。ユーザーを破棄するときに自動的にサインアウトするのを防ぐ方法

私はDeviseを認証に使用しており、ユーザーが他のユーザーを破棄できるようにしたいと考えています。私はこのビットが動作しているが、私は別のユーザーを削除しているにもかかわらず私がログアウトするのを防ぐために苦労している。

class RegistrationsController < Devise::RegistrationsController 
    def new 
    super 
    end 

    def create 
    super 
    end 

    def edit 
    ... 
    super 
    end 

    def update 
    ... 
    end 

    def destroy 
    resource.destroy 
    set_flash_message :notice, :destroyed 
    redirect_to :root 
    end 

end 

そして、私のユーザーのそれぞれが次のようになり破棄リンク:

は、私は自分のregistrations_controllerを作成している

<%= link_to "Yes", registration_path(@user), :remote => true, :method => :delete, :class => "button" %>しかし

、毎回私は、このリンクをクリックしてくださいそれは私が削除している別のユーザーでも私をログアウトします。

アイデア?

+0

ていますか?私にそのように見える。また、スーパーラインでこれらの行動をすべて取る必要はありません。 – Ashitaka

答えて

0

この問題を抱えている人は、この投稿で解決しました。基本的には、現在のものとは別のユーザーを削除することはできません。あなたは、現在のビューが表示されているあなたの他のコントローラにユーザーを破壊するためにアクションを破壊追加する必要があります。あなたはログインしているユーザーを破壊していないことを確認

Destroying users as an admin in Devise

0

私は同じ正確な問題を抱えていて、それが問題であるDeviseではないことに気付きました。

<%= csrf_meta_tag %> 

Railsでは、レスポンスごとにCSRF認証コードがあると想定しています。 RailsはGETリクエストを無視しますが、POST/PUT/DELETEリクエストに含めないと、現在のセッションを強制終了してログアウトします。

form_forヘルパーを使用すると、CSRFコードが自動的に組み込まれます。しかし、Railsのjavascript AJAXヘルパー(リモートリンクを処理するヘルパー)はCSRFメタタグを探して、要求にコードを添付することができます。

+0

Carbo、ありがとうが、私はすでにヘッダーにこれを持っています。 この記事を読んでいる誰かが私の問題を解決しました。基本的には、現在のユーザー以外のユーザーは削除できません:http://stackoverflow.com/questions/5170518/destroying-users-as-an-admin-in-devise –

関連する問題