2013-02-11 13 views
11

Mam problemy z metody szyn: send_dataszyny nie send_data jako plik

Oto moje działanie:

def export 
    send_data(current_user.contacts.to_csv, 
    type: 'text/csv; charset=utf-8; header=present', 
    disposition: 'attachment; filename=contacts.csv' 
) 
end 

To nie będzie PROMT do pobrania, to właśnie czyni wynik na ekran. Próbowałem już serwerów pow i thin.

Nie mogę zrozumieć, co robię źle?

Używam rails 4.0.0.beta

EDIT:

CURL nagłówki:

< HTTP/1.1 200 OK 
< X-Frame-Options: SAMEORIGIN 
< X-XSS-Protection: 1; mode=block 
< X-Content-Type-Options: nosniff 
< X-UA-Compatible: chrome=1 
< X-XHR-Current-Location: /contacts/export 
< Content-Disposition: attachment; filename=contacts.csv 
< Content-Transfer-Encoding: binary 
< Content-Type: text/csv; charset=utf-8; header=present 
< Cache-Control: private 
< ETag: "48d3d8bd1c8d25cafb82ab705e4875ab" 
< Set-Cookie: request_method=GET; path=/ 
< X-Request-Id: c2588883-f3f9-4f68-8a8c-0de758c47288 
< X-Runtime: 0.185206 
< Connection: close 
< Server: thin 1.5.0 codename Knife 
+0

mógłbyś pisać wynik 'zwijania -v http: // localhost: 3000/whateveryourrouteis'? Założę się, że to nie jest ustawienie typu zawartości poprawnie. – stef

+0

Dodałem teraz nagłówki CURL – sandelius

+0

Może to być typowe dla przeglądarki. Na jakiej przeglądarce testujesz? – bdares

Odpowiedz

10

Wymyśliłem to.

To były turbolinki, które wszystko zepsuły. Dodałem dane-nie-turbolink do linku eksportu i teraz działa zgodnie z oczekiwaniami.

+0

+1: dodając to do mojej listy turkminks gotchas – bdares

+1

Natknąłem się również na ten problem, jednak bez turbolinks. Miałem zdalny: true set in my link_to. Usunięcie pilota: prawda naprawił problem. – cgat

2

send_data ma takie hash opcji, więc rodzaj, rozmieszczenie i nazwa pliku muszą być ustawione w hash:

+0

Podaję skrót, jako drugi argument. Próbowałem również twojej drogi, ale po prostu renderuję zawartość na ekranie. – sandelius

Powiązane problemy