В state_machine как узнать, какие события действительны из текущего состояния? - PullRequest
1 голос
/ 22 июля 2011

Я использую Aaron Pfeifer's state_machine gem в моем приложении Rails3 - это изящно.

Как получить список событий, которые являются законными в текущем состоянии?Таким образом, я не имею в виду my_model.state_path.events, который возвращает все события, транзитивно прослеживаемые из текущего состояния - я хочу только те, которые доступны в текущем состоянии.

Я почти уверен, что просто упускаю из виду нечто очевидное.

1 Ответ

5 голосов
/ 22 июля 2011

Аарон сам ответил на вопрос в списке рассылки PluginAWeek: Core group:

Привет - Вы можете увидеть список вспомогательных методов, которые генерируются для каждый конечный автомат в документах для макроса #state_machine под Рубрика «Методы экземпляра»: http://rdoc.info/github/pluginaweek/state_machine/master/StateMachine... Здесь вы заметите несколько методов экземпляра, которые должны вам помочь:

  • state_events - получает список событий, которые могут быть запущены на текущее состояние объекта (использует неквалифицированные имена событий)
  • state_transitions - получает список переходов, которые могут быть выполнены текущее состояние объекта
  • state_paths - получает список последовательностей переходов, которые могут быть бежать из текущего состояния объекта Надеюсь, это поможет! Бест, Аарон
...