2009-03-30 13 views
12

Kullanıcının oluşturulan bir CSV dosyasını indirmesine izin veren bir raylı uygulamasına sahibim. Dosya indirildikten sonra, kullanıcıyı yeni bir URL'ye veya eyleme yönlendirmek istiyorum. Send_data'dan sonra yönlendirme yapmak için bir numara var mı?Raylar nasıl gönderilirim - send_data ile veriyi dışarı aktarabilirim sonra yeni bir sayfaya yönlendiririm?

I (çalışmıyor) böyle bir şey yapmak istiyorum: Bir denetleyici yönteminde ondan sonra bir şey yapamaz bu yüzden

send_data(output,:type => content_type,:filename => "myfile.csv") 
redirect_to :controller => 'my_controller', :action => 'download_done' 
+0

Örnek olarak verdiğiniz kodu çalıştırdığınızda ne olur? – vrish88

+0

hiçbir şey- indirilmez, yönlendirme yok. Görünüşe göre send_data, raylar tarafından "render" olarak kabul edilir. Eğer durum böyle olsaydı bir istisnaya sebep olacağını düşündüm. – daustin777

cevap

9

send_data bir hale olduğunu.

Çevresindeki her şey Javascript içerir. İşte gerçekten sevdim ben birlikte ve asla kesmek tek yolu şudur:

  • kullanıcı isabet
  • küçük pencere açılır ve dosyayı indirmek için kontrolöre bağlanır göndermek ana pencere sonraki sayfada
yönlendirir
  • Sonunda dosya oluşturmayı arka plan işine dönüştürdüm. Daha sonra, kullanıcılar dosyaları almak için bir iş sayfasına (sonraki bir yönlendirmeye gerek duymadan) gitti.

  • +0

    teşekkürler - bu ihtiyaçlar için iyi çalıştı! – daustin777

    +0

    Bu teknik, IE6 ve çok sıkı tarayıcı güvenlik ayarları ile bir kullanıcı geldi ve çalışmayı durdurdu kadar iyi çalıştı. Test işlemimin tümünde çalıştığı görünen indirme eyleminin hedefi olarak bir