Ruby on rails 如何从模型类获取所有状态机事件?

Ruby on rails 如何从模型类获取所有状态机事件?,ruby-on-rails,state-machine,Ruby On Rails,State Machine,是否可以从模型类获取所有事件?我想按事件筛选列表 所有的转变都有一个大致相同的过程 我正在使用您链接到的github页面上的显示以下API方法: vehicle.state_events # shows all the events possible from the current state 及 编辑2014:此列表显示的是事件,而不是事件 我就是这样做的,只列出键 def self.membership_states self.state_machines[:membership_

是否可以从模型类获取所有事件?我想按事件筛选列表

所有的转变都有一个大致相同的过程


我正在使用您链接到的github页面上的

显示以下API方法:

vehicle.state_events  # shows all the events possible from the current state

编辑2014:此列表显示的是事件,而不是事件

我就是这样做的,只列出键

def self.membership_states
  self.state_machines[:membership_status].states.map(&:name)
end

$ User.membership_states
> [:applied, ...

出于某种原因,被接受的答案需要几秒钟的时间来计算。我想如果你有很多州,这种情况就会发生

对我有效的是:

Invoice.state_machines[:state].events.map(&:name)

在我的例子中,类名是
invoice
,状态机名为
state

好的,我发现前面的问题回答了这个问题:我必须自己更正。以上问题的答案给出了所有转换,而不是事件。这可能取决于您使用的状态机软件。对,我扩展了我的问题是的,但这是针对特定对象的,而不是模型类“Vehicle.new.state\u events”或“Vehicle.new.state\u path.events”,然后。。。可能有一种更直接的方法,如果您查看链接的API,似乎每个对象都有一个“事件”集合。但是我不使用状态机,所以我不能说更多。这里是关于这个主题的更多信息:OP要求的是事件,而不是状态。所以我想这是行不通的。@Hendrik,是的,你是对的,那些是不一样的:已经有一段时间了,你认为我应该删除吗?不,继续贡献:)
Invoice.state_machines[:state].events.map(&:name)