Devise を使用していて、ログアウト アクションを実行したいと考えています。
私がやりたいことは、ログアウトするときに、返す独自の JSON オブジェクトを作成したいということです。この時点で、ログアウトした後、すべてのルート記事を取得します。
create アクションを見つけたように、どうすれば独自の destory アクションを作成できますか?
class SessionsController < Devise::SessionsController
def create
resource = warden.authenticate!(:scope => resource_name, :recall => :failure)
return sign_in_and_redirect(resource_name, resource)
end
def sign_in_and_redirect(resource_or_scope, resource=nil)
scope = Devise::Mapping.find_scope!(resource_or_scope)
resource ||= resource_or_scope
sign_in(scope, resource) unless warden.user(scope) == resource
return render :json => {:success => true, :redirect => stored_location_for(scope) || after_sign_in_path_for(resource)}
end
def failure
return render:json => {:success => false, :errors => ["Login failed."]}
end
end
そして、routes.rb の私のルート
devise_for :users, :controllers => {:session => "sessions"} do
get "/users/sing_out" => "devise/sessions#destroy"
end