Rails Скачать файл и просмотреть обновление - Howto? - PullRequest
4 голосов
/ 15 октября 2010

Кажется, это должно быть прямо, но я в тупике. У меня есть ссылка на контроллер представления, который в конечном итоге использует send_data для загрузки файла на жесткий диск пользователя. Это работает очень хорошо, и это оставляет текущий взгляд, видимо, нетронутым.

Но теперь я хотел бы, чтобы страница предоставила некоторые отзывы после завершения загрузки. Я наивно помещаю что-то вроде следующего кода в контроллер перед вызовом метода send_data:

flash[:notice] = "Nice work, hot shot!"
send_data file, :filename=>fullname+".txt", :type=>"text/plain"

Но это не работает, потому что текущее представление не перезагружается, чтобы дать мне возможность отобразить флэш-переменную.

Я также попытался добавить представление RJS для этого действия, но это привело к старой ошибке DoubleRender, поскольку send_data также является действием рендеринга.

Так ... э-э ... как, черт возьми, можно было бы передать данные обратно в текущее представление после запуска send_data? Или есть другой подход к этой проблеме?

Спасибо! Аарон.

1 Ответ

3 голосов
/ 15 октября 2010

Возможно, вы могли бы установить cookie в ответе и опросить этот cookie с помощью javascript при нажатии на ссылку для загрузки файла.

Cookie можно установить так:

cookies["download_finished"] = "true"
send_data file, :filename=>fullname+".txt", :type=>"text/plain"

Тогда просто периодически для этого куки используйте ваш любимый фреймворк javascript.

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