tutorial rails que ejemplos curso caracteristicas aprender ruby-on-rails ruby-on-rails-4

ruby on rails - rails - los carriles no enviarán datos como archivo



ruby on rails que es (3)

Tengo problemas con el método Rails: send_data

Aquí está mi acción:

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

Esto no implicará una descarga, solo muestra el resultado en la pantalla. He intentado con servidores pow y thin .

No puedo entender lo que estoy haciendo mal?

Estoy usando rails 4.0.0.beta

EDITAR:

Encabezados CURL:

< 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


send_data tiene una opción hash, por lo que el tipo, disposición y nombre de archivo deben configurarse en hash:

def export send_data(current_user.contacts.to_csv, type: ''text/csv'', disposition: ''attachment'', filename: ''contacts.csv'') end


Me lo imaginé.

Fue turbolinks lo que estaba estropeando todo. Agregué data-no-turbolink al enlace de exportación y ahora funciona como se esperaba.