Каков наилучший способ остановить переход с AASM

Когда метод вызывается в фазе успеха или входа в состояние перехода состояния, выдает ошибки, что является лучшим способом отловить это и гарантировать, что состояние возвращается в предыдущее состояние.

Я использую драгоценный камень AASM.

2 ответа

Решение

Как насчет использования опции:guard, чтобы убедиться, что переход может быть выполнен? Если метод guard возвращает false, переход вообще не выполняется. Итак, я бы сначала проверил, выполняется ли каждое условие перехода с помощью метода guard.

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

Это имеет для меня полное значение для success обратный вызов, потому что он вызывается только после того, как на самом деле произошел переход, к которому времени уже поздно возвращаться. Если вы хотите, чтобы в вашем success обратный вызов для предотвращения перехода, возможно, код должен идти в самом переходе, а не в success Перезвоните...? Или, может быть, вам нужно дополнительное состояние...?

Учитывая enter перезвонил бы guard обратный вызов не будет более подходящим...? Вы можете вернуть false, если переход не должен идти вперед.

Другие вопросы по тегам