Управление очередями в Rails - PullRequest
0 голосов
/ 18 июня 2010

Я планирую сделать что-то подобное для веб-сайта на Ruby on Rails. Пользователь приходит и вводит несколько имен в текстовое поле, и из всех имен создается очередь. После этого веб-сайт продолжает запрашивать более подробную информацию о каждой из очереди, пока очередь не завершится.

Есть ли в Ruby какой-либо гем управления очередью, или мне просто нужно создать массив и продолжать увеличивать индекс в переменной сеанса, чтобы эмулировать поведение очереди?

Ответы [ 2 ]

3 голосов
/ 18 июня 2010

Возможно, проще всего использовать методы push и shift для массивов ruby.

Нажмите на кнопки-палочки в конце массива, Shift вернется и удалит первый элемент.

Получая данные о каждом из имен, вы можете создать второй список имен - готовый массив. Или, если вас это не беспокоит, и вы просто хотите сохранить и больше с ними, просто сохраните массив в сеансе (если он не будет массовым) и продолжайте.

Если ваш массив массивный, рассмотрите возможность хранения имен, добавляемых во временные строки в таблице, а затем удаляйте их при необходимости. Если вы выбираете именно этот маршрут, обязательно запустите регулярно выполняемую процедуру очистки, которая удаляет записи, которые никогда не были заполнены.

Ссылки

1 голос
/ 18 июня 2010

Попробуйте смоделировать очередь с ActiveRecord

Queue.has_many :tasks

атрибуты: имя, идентификатор, временные метки

Task.belongs_to :queue

атрибуты: имя, идентификатор, должность, временные метки, заполнено

Используйте временные метки для установки начальной позиции. Как только задача завершена, установите позицию [наивысшая позиция] +1 (при условии, что чем меньше номер позиции, тем выше вверх в очереди) Завершенные задачи опустятся на дно очереди, а новая задача поднимется на вершину.

Надеюсь, это поможет!

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