У меня есть метод export_csv в контроллере.Rails 4 ... Перезагрузка страницы после send_data
def export_csv
if params[:from_date].present? && params[:to_date].present?
@users = User.where("created_at between ? and ?", params[:from_date], params[:to_date])
if [email protected]?
users_csv = User.to_excel(@users)
send_data(users_csv, :type => 'text/csv', :filename => 'users.csv')
flash.now[:success] = "Successfully downloaded the report!"
else
flash.now[:notice] = "No records over selected duration!"
end
else
flash.now[:notice] = "Select from and to date.."
end
end
Файл загружен, но страница не обновляется и не перезагружается. Из-за этого флеш-сообщение остается, как на странице, даже после загрузки файла.
Я прошел через несколько сайтов и обнаружил, что send_data автоматически отображает представление, и поэтому нельзя использовать другую перенаправление или рендеринг.
Есть ли способ перезагрузить страницу после отправки_даты.?
Спасибо за ответ. Разве нет другого способа сделать это? Потому что удаление файлов с использованием фоновой задачи будет суете. –
Ну, вы можете создать новый метод 'download_csv', который будет использовать' send_data' (сначала чтение содержимого файла), а затем удалить файл. – Claudix
Можете ли вы помочь с псевдо-кодом того, что нужно написать в файле _ csv _ и загрузить _ report? –