在state_machine中,如何从当前状态中查找哪些事件有效?

fea*_*ool 1 state-machine ruby-on-rails-3

我在我的Rails3应用程序中使用Aaron Pfeifer的state_machine gem - 它很漂亮.

如何在当前状态下获取事件列表是合法的?通过这个,我并不是指从当前状态my_model.state_path.events返回所有可传递的事件 - 我只想要那些在当前状态下可用的事件.

我很确定我只是忽略了一些显而易见的事情.

fea*_*ool 5

Aaron自己回答了关于PluginAWeek:Core组邮件列表的问题:

嗨 - 您可以在"实例方法"标题下的#state_machine宏的文档中看到为每个状态机生成的辅助方法列表:http://rdoc.info/github/pluginaweek/state_machine/master/StateMachine ...在这里你会注意到一些可以帮助你的实例方法:

  • state_events - 获取可以在当前对象的状态上触发的事件列表(使用非限定事件名称)
  • state_transitions - 获取可以对当前对象的状态进行的转换列表
  • state_paths - 获取可以从当前对象的状态运行的转换序列列表希望这会有所帮助!最好的,亚伦