Загрузка CSV в Rails включает тег textarea - переопределить рендеринг Remotipart?
Я пытаюсь создать файл CSV для загрузки в Rails и не могу заставить его отправлять только CSV без тега вокруг данных. В моем контроллере у меня есть:
csv_string = CSV.generate do |csv|
headers = ['Header 1', 'Header 2']
csv << headers
@matches.each do |match|
csv << match
end
end
send_data(csv_string, :filename => filename, :layout => false)
Форма для запуска этого имеет:
=form_tag log_path, :id =>'log_search_form', :multipart => true, :remote=>true do
.search_fields
.panel.panel-default
.panel-heading
Search Log File:
=file_field_tag :search
=submit_tag "Find Matches", :class=>'btn btn-primary btn-xs'
Когда я нажимаю "Найти соответствия", мне предлагается загрузить CSV-файл, но первая строка содержит:
<textarea data-type="text/csv" data-status="200" data-statusText="OK">Header 1
и файл заканчивается
</textarea>
(Устаревший) код использует remotipart - кажется, мне нужно остановить его от переопределения рендера и добавления текстовой области. Как я могу сделать это, чтобы получить чистую загрузку CSV? Спасибо!
1 ответ
Я никогда не видел этого лишнего <textarea>
вопрос раньше, но попробуйте send_data(...)
Параметризация, которая берется из приложения Rails, которое я поддерживаю:
# inside your format.csv handler...
# set the filename and csv_string variables...
send_data(csv_string, :type => 'text/csv',
:disposition => :attachment,
:filename => filename)