Я строю электронной коммерции сайт на рубин на рельсах с нуля. (Это мой первый проект на рубин на рельсах)Слишком много сеансов в приложении рельсы
Мой продукт относится к подкатегории, которые в -отвержение относится к категории.
Мои фильтры частичными включают несколько флажки для категории, подкатегории, additional_category (как ручной работы одежда, построен завод и др.), Образ жизни (расслаблены, корпоративные и т.д.) и cloth_material_type (это имеет около 30 вариантов)
Я отправляю 5 массивов для каждого из этих случаев на бэкэнд для поиска по ассоциациям.
Теперь, когда пользователь, не зарегистрированный пользователем, перезагружает страницу, фильтры, установленные пользователем, сбрасываются по умолчанию.
Чтобы избежать этого, у меня есть четыре варианта.
Вариант 1. Сохраните значения фильтра, установленные пользователем в cookie , который быстро. Но это может замедлить работу браузера пользователя.
Вариант 2. Сохраните значения в сеансе, используя ActiveRecord :: SessionStore gem, который увеличит размер сеанса для меня до 65K, но замедлит приложение.
Вариант 3 .Using JQuery изменить/создать document.URL параметры так, что каждый вариант фильтра добавляемый к document.URL и перезагрузки я получаю параметры, установленные пользователем для filtering.But это выглядит очень громоздко реализовать.
Вариант 4. Использование драгоценных камней, таких как rails временная база данных и т. Д.
Я выбрал вариант 2 и использовал для этого сессионный магазин, но я думаю, что это будет громоздким, чтобы сохранить это в будущем.
Просто нужно несколько советов, как сделать другие сайты электронной торговли, чтобы решить эту проблему, или есть лучший способ решить эту проблему.
Я хотел бы использовать параметры URL синка Один из принципов спокойного дизайна заключается в том, что ресурс должен выглядеть одинаково независимо от состояния браузера. Так что, если я смотрю на розовые женские туфли и скопирую пасту URL-адреса браузера и отправляю их другу, они должны увидеть тот же выбор. – max
Вы можете, конечно, использовать это вместе с учетными записями cookie/guest для запоминания избранных. Но построение URL-ориентированного решения обычно оказывается более надежным из-за безгражданства. – max
Спасибо за ваш ответ. Н точно, что меня беспокоит. В дополнение к этим массивам у меня есть диапазон цен и специальные варианты строчек. Я планирую создать модель поиска для временных данных. Так что пользователь может легко сохранить их, если они захотят и поделиться своими сохраненными поисками. И добавление cronjob в задачу rake для удаления устаревших кортежей в модели поиска и модели сеанса. –