2012-10-02 15 views
6

Kullanıcıların üyelik süresi sona eren bir uygulama var.Kullanıcıları oturum açmak için güçlendirme Devise

Üyeliklerin siteye yayılmadan önce etkin olup olmadığını kontrol etmek için before_filter benim applications.rb dosyamda ayarlamaya çalışıyorum. Benim application.rb dosyasında

: Ben yönlendirme döngüsü hatası almaya devam

before_filter :check_account 

def check_account 
    if user_signed_in? 
    if current_user.account.expired 
     flash[:error] = "Your account is expired. Please contact Navanti for renewal." 
     redirect_to destroy_user_session_path 
    end 
    end 
end 

. Sanırım çağrılan çıkış sayfası nedeniyle before_filter yapıyor, ancak bir except => [:users => :sign_out] koyarsanız hala döngü hatası atar.

Yardımlarınız için teşekkürler. Devise Yöntemi Talep


:

# DELETE /resource/sign_out 

def destroy 
    redirect_path = after_sign_out_path_for(resource_name) 
    signed_out = (Devise.sign_out_all_scopes ? sign_out : sign_out(resource_name)) 
    set_flash_message :notice, :signed_out if signed_out && is_navigational_format? 

    # We actually need to hardcode this as Rails default responder doesn't 
    # support returning empty response on GET request 
    respond_to do |format| 
    format.any(*navigational_formats) { redirect_to redirect_path } 
    format.all do 
     head :no_content 
    end 
    end 
end 
+1

Destroy_user_session_path için kodu yazın. – alex

+0

evet plz kodu buraya koydun –

+0

Bu kod, Devise geminden geliyor - onu bulmaya çalışacağım ve soruya ekleyeceğim. – matthewvb

cevap

7

kontrolör/eylemi aşağıdaki şekilde sorgulayarak deneyin:

def check_account 
    return if params[:controller] == "devise/sessions" && params[:action] == "destroy" 
    if user_signed_in? 
    if current_user.account.expired 
     flash[:error] = "Your account is expired. Please contact Navanti for renewal." 
     redirect_to destroy_user_session_path 
    end 
    end 
end 

Bu Karşılaştığınız yönlendirme döngü ortadan kaldırmak gerekir.

+0

Teşekkürler Erez - bu harika çalıştı. Fark ettiğim bir takip sorunum var ama bunu başka bir soruya koyacağım. – matthewvb

İlgili konular