Конечный автомат Rails зависит от связанных данных? - PullRequest
0 голосов
/ 14 декабря 2011

У меня есть модель для заказов, в которой есть много элементов:

class Order < ActiveRecord::Base
    has_many :items
end

class Item < ActiveRecord::Base
    belongs_to :order
end

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

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

Я работаю в Rails 3.1, если это имеет значение.

Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 14 декабря 2011

Я использую state_machine gem для очень похожего процесса, когда в одном проекте много документов.

У меня есть состояния проекта в зависимости от состояний его документов.

Когда один document достигает своего конечного состояния, state_machine вызывает метод для связанного project. Этот метод отвечает за запуск или отсутствие state изменения.

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