Каков наилучший способ остановить переход с AASM
Когда метод вызывается в фазе успеха или входа в состояние перехода состояния, выдает ошибки, что является лучшим способом отловить это и гарантировать, что состояние возвращается в предыдущее состояние.
Я использую драгоценный камень AASM.
2 ответа
Как насчет использования опции:guard, чтобы убедиться, что переход может быть выполнен? Если метод guard возвращает false, переход вообще не выполняется. Итак, я бы сначала проверил, выполняется ли каждое условие перехода с помощью метода guard.
Я не использовал этот плагин, но, читая код, если я не ошибаюсь, кажется, нет никакого механизма для сообщения о том, что ни один из этих обратных вызовов не сработал.
Это имеет для меня полное значение для success
обратный вызов, потому что он вызывается только после того, как на самом деле произошел переход, к которому времени уже поздно возвращаться. Если вы хотите, чтобы в вашем success
обратный вызов для предотвращения перехода, возможно, код должен идти в самом переходе, а не в success
Перезвоните...? Или, может быть, вам нужно дополнительное состояние...?
Учитывая enter
перезвонил бы guard
обратный вызов не будет более подходящим...? Вы можете вернуть false, если переход не должен идти вперед.