2010-08-25 13 views
9

Kimlik doğrulama için Devise'yi kullanarak bir Rails3 uygulaması geliştiriyorum. İş akışı sırasında, hasta_id gibi veriler oturumda saklanır. Ancak, kullanıcı oturumu kapatıldığında, oturumun temizlenmesi gerekir. Devise kullanıcıları oturum açma/oturum kapatma işlemlerini gerçekleştirdiğinden ve üzerinde kontrol sahibi olmadığından oturum verilerini nasıl sıfırlayacağımı anlayamıyorum.Raylar 3 devele'yi kullanarak oturumu sıfırlayın

Bu durum nasıl ele alınır? Ben baştan vasiyetle denetleyicileri binmek olurdu inanmak

+0

Devise kullanıyorum ve oturumları otomatik olarak oturumları kapatır gibi görünüyor. Soruyu sorduğun için eski bir post-did Devise değişim davranışı olduğunu fark ettim mi yoksa bir şey mi özledim? – Yarin

cevap

14

Üzerine Yaz Devise :: SessionsController:

class SessionsController < Devise::SessionsController 
    respond_to :html 
    def destroy 
    super 
    reset_session 
    end 
end 

Don Görüntülerin görüşlerini doğru yere taşımayı unutun (görüş/oturumlara ilişkin görüş/düzenleme/oturumlar) ve kontrol cihazınızı yönlendirecek şekilde düzenleyin. Örneğin:

devise_for :users, :controllers => { :sessions => "sessions" } 

fazla ayrıntı veya Bill tarafından yayınlanmıştır bağlantıdan github vasiyetle dokümanlarını görün.

+0

Teşekkürler, yukarıdaki teknik çalışmalıdır. Şu anda bir çözüm olarak sahip olduğumdan daha temiz: https://gist.github.com/735857. Bu yine dokümanları düzgün bir şekilde gözden geçiremem olduğunu kanıtlıyor. Senin çözümüne geçeceğim. –

+0

Belki yanlış bir şey yapıyorum, ancak bir kullanıcı çıkışı ve yeni bir sayfaya göndermek gerekiyordu ... sadece "reset_session" benim için çalıştı. – rtfminc