Вопрос по ruby-on-rails-4, ruby-on-rails – рельсы не будут отправлять данные в виде файла

11

У меня возникли проблемы с методом Rails:send_data

Вот'мои действия:

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

Это не приведет к загрузке, а просто отобразит результат на экране. Я'мы пробовали обаpow а такжеthin сервера.

Я могу'не могу понять, что яя делаю неправильно?

м используюrails 4.0.0.beta

РЕДАКТИРОВАТЬ:

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
Не могли бы вы опубликовать результатcurl -v http://localhost:3000/whateveryourrouteis? Держу паринеправильно устанавливает тип содержимого. stef
Сейчас я'добавили заголовки CURL sandelius
@sandelius я 'У меня схожие проблемы, как вы решили это? John
Это может зависеть от браузера. Какой браузер вы тестируете? bdares

Ваш Ответ

3   ответа
2

send_data имеет опцию хэша, поэтому тип, расположение и имя файла должны быть установлены в хэше: I '

  send_data(current_user.contacts.to_csv,
  type: 'text/csv', disposition: 'attachment', filename: 'contacts.csv')
end
м передавая хэш в качестве второго аргумента. Я'Мы пробовали и ваш путь, но он просто отображал содержимое на экране. sandelius
10

Это были турболинки, которые все испортили. Я добавил data-no-turbolink к экспортной ссылке, и теперь она работает как положено.

Однако я столкнулся и с этой проблемой, без турболинков. У меня был удаленный: true, установленный в моей ссылке. Удаление пульта: верно исправило проблему. cgat
+1: добавив, что в мой список турболинков попал bdares
12

для турболинков классика. На более новых версиях турболинков появилось новое обозначение:

<a href="/" data-turbolinks="false">Disabled</a>

https://github.com/turbolinks/turbolinks#disabling-turbolinks-on-specific-links

Отличный человек, у меня это сработало, я использовал более новую версию турбо ссылок. \ М / Aamir
Это все еще здорово. Scott Hillson

Похожие вопросы