Что вы можете сделать, это сгенерировать строку с библиотекой CSV, используя CSV::generate
вместо CSV::open
.
Контроллер:
class DataController < ApplicationController
def download
respond_to do |format|
format.csv { send_csv_download }
end
end
private
def send_csv_download
string = CSV.generate do |csv|
@data.each { |row| csv << ["#{row.name}@gmail.com"] }
end
send_data string, filename: 'foo.csv', type: :csv
end
end
конфиг / routes.rb:
get '/download', to: 'data#download'
Просмотр:
<%= link_to 'Download CSV', download_path(format: :csv) %>
Примечание: Очевидно, я понятия не имею, откуда вы взяли ваш @data
, поскольку он не указан в вашем вопросе.