#javascript #ruby-on-rails
Вопрос:
Использование Рельсов 6.
Проблема
- База данных содержит 10 карточек. Идентификатор карты 1, 2, 3, … 10
- Интерфейс позволяет пользователю выбрать 2 карты из 10 карт (например, Карта 5 и карта 6).
- Система выберет 5 карт случайным образом
- Если выбранные карты найдены в 5 картах, они будут помещены первыми в возвращаемый массив записей (например, если карты 5 и 6 найдены, последовательность будет 5, 6, 1, 3, 4)
- Передняя часть будет отображать карты в правильной последовательности
Текущее Решение
В настоящее время я храню выбранную карту в локальном хранилище в виде строки 5,6
. Однако это не идеально, потому что мне нужно постоянно передавать локальное хранилище в серверную часть Rails.
Я подумал о хранилище сеансов, но не уверен, что это лучшая реализация.
Критерий
Я не хочу хранить в базе данных, потому что там нет логина пользователя. Я не возражаю, если срок действия сеанса истечет, но данные должны сохраняться в течение определенного периода времени. Обновление страницы не должно удалять данные.
Вопрос
Каков самый элегантный способ решить эту проблему — пользователь выбирает на переднем конце, бэкэнд Rails принимает выбранное для управления последовательностью? Я не хочу, чтобы передний конец перестраивался, потому что он медленный и будет мерцать).
Комментарии:
1. Хранилище-это если вам нужно, чтобы эта информация сохранялась после обновления страницы или после сеансов браузера. Является ли это обязательным требованием? Если нет, вы можете рассмотреть возможность использования файла cookie, так как он будет автоматически прикрепляться к каждому запросу.
2. @Ник Да, данные должны сохраняться после обновления страницы или после сеансов браузера.
3. Хорошо, тогда локальное хранилище, вероятно, хорошая ставка. Хранилище сеансов будет очищено, когда текущая вкладка будет закрыта. Вы можете сохранить информацию в локальном хранилище, а затем всякий раз, когда вы делаете запрос, вы можете прикрепить информацию в теле запроса. Если вам не нравится явно прикрепляться к каждому запросу, вы можете установить файл cookie при загрузке страницы или при изменении выбора карты.
4. @Ник Изменил мое хранилище с локального хранилища на файлы cookie. Спасибо за предложение.