Rails, как мне - экспортировать данные с send_data, а затем перенаправить на новую страницу? - PullRequest
13 голосов
/ 31 марта 2009

У меня есть приложение rails, которое позволяет пользователю загружать сгенерированный файл CSV. После загрузки файла я бы хотел перенаправить пользователя на новый URL-адрес или действие. Есть ли хитрость для перенаправления после send_data?

Я хочу сделать что-то вроде этого (что не работает):

send_data(output,:type => content_type,:filename => "myfile.csv")
redirect_to :controller => 'my_controller', :action => 'download_done'

1 Ответ

12 голосов
/ 31 марта 2009

send_data - это рендер, поэтому вы не можете ничего сделать после него в методе контроллера.

Обходы вокруг всего этого включают Javascript. Вот один способ, который я взломал вместе и никогда не любил:

  • Хиты пользователя отправить
  • всплывает небольшое окно и подключается к контроллеру для загрузки файла
  • главное окно перенаправляет на следующую страницу

В конце концов я превратил генерацию файлов в фоновую работу. Затем пользователь перешел на страницу вакансий (которая не нуждалась в последующем перенаправлении) для получения файлов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...