Написание куки на Rails помимо контроллера, возможно? - PullRequest
0 голосов
/ 13 июня 2019

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

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

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

1 Ответ

3 голосов
/ 13 июня 2019

Это невозможно.Написание cookie - это часть ответа HTTP, поэтому вам нужно быть в цикле запрос-ответ, то есть в контроллере.

Что вы могли бы сделать (и я делал это не раз), так это иметь некоторыевид записи в базе данных, сохраняющий состояние фонового задания и со страницы, которую вы перенаправили, для периодического опроса некоторой конечной точки с помощью AJAX (или установления соединения через Websocket), чтобы проверить, завершилось ли задание и с каким статусом.Тогда вы сможете установить cookie.

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