2011-03-28 14 views
8

Bir AJAX girişiyle devise kullanarak bir sorunum var. :remote => true seçeneğini ve javascript yardımcılarının jQuery sürümünü kullanıyorum (https://github.com/rails/jquery-ujs). Kullanıcı, doğru bilgileri girdiğinde, oturumlar görünümündeki create.js.erb işlenir. Bu tamam, çünkü bu dosyada JS kullanarak kullanıcımı yönlendirebilirim. Ancak bir hata oluştuğunda, ör. kullanıcı yanlış bilgi girer, sadece flaş mesajlar bir hata kodu 401 - Unauthorized ile yanıtta. Yani, görünüm veya create.js.erb veya sth else render. Ama bu mesajı yan tarafta göstererek kullanmak istiyorum, böylece kullanıcılar bazı geribildirimler alır, neyin yanlış olur.Raylar 3 ve remote => true ile doğrulayın>> true

Ben de respond_to :js ile kendi özel denetleyici uygulamaya çalıştı ve bekçi kimlik doğrulama :recall yöntemi ile oynayarak. Ama işe yaramıyor.

Bu sorunu çözmek için bazı en iyi uygulamaları bilen var mı? Veya bu yardımcı yöntemlerden kaçınmalı ve ajax aramaları için sadece saf jQuery kullanmalı mıyım? Sadece forma olayını bağlayan raylar 3'te: "hatası ajax"

thx smokin

cevap

9

jQuery olay kullanabilirsiniz.

jQuery(function($) { 
    $("#new_model").bind("ajax:error", function(event, data, status, xhr) { 
    alert("something went wrong"); 
    }); 
}); 

aktüel ne hakkında daha fazla ayrıntı için bu blog post bir göz atın.

+0

Cevabınız için teşekkür ederiz. Benim için çalıştı, ama ajax: başarısızlığı ajax ile değiştirmem gerekiyor: hata – 23tux

+0

Diğer insanların yorumları okumaması durumunda cevabımı güncelledim. –

1

İşte benim sürüm

<script> 
    $(document).ajaxError(function(e, XHR, options){ 
    if (XHR.status == 401){ 
     window.location.replace("<%= new_user_session_path %>"); 
    } 
    }); 
</script> 

otomatik giriş sayfaya yönlendirir ve sayfadaki tüm elemanlar için çalışır var.

İlgili konular