Ruby on rails rails aasm:获取允许特定事件的所有状态
我是AASM新手,正在尝试获取MyModel模型中可以转换为状态的所有状态的列表:newstate 例如:Ruby on rails rails aasm:获取允许特定事件的所有状态,ruby-on-rails,aasm,Ruby On Rails,Aasm,我是AASM新手,正在尝试获取MyModel模型中可以转换为状态的所有状态的列表:newstate 例如: aasm_event :finish do transitions :to => :finalstate, :from => [:start, :working] end 基本上,我希望通过模型返回[:start,:working]数组,因此 MyModel.aasm_events.finish.transitions.from 但是,好吧,这不是语法…我在
aasm_event :finish do
transitions :to => :finalstate, :from => [:start, :working]
end
基本上,我希望通过模型返回[:start,:working]数组,因此
MyModel.aasm_events.finish.transitions.from
但是,好吧,这不是语法…我在文档中找不到关于它的任何东西
感谢您的任何建议。直到现在才得到支持。最新发布的gem版本3.0.12现在支持一个名为aasm\u的类方法,该类方法完全符合您的要求。不幸的是,您建议的小DSL(…finish.transitions.from)非常好,但目前还不可用。但我会记住的;) 使用新的类方法,如下所示:
MyModel.aasm_from_states_for_state(:finalstate)
返回所有可能的状态。如果您只需要特定转换的来自状态:
MyModel.aasm_from_states_for_state(:finalstate, :transition => :finish)
或者更现代(使用Ruby 1.9)
所有调用都会返回一个可能来自状态的数组。只是一个提示:源代码表明,将在版本4.x->中删除来自状态的方法
aasm\u;不推荐使用来自状态的aasm\u,将在版本4.0.0中删除;请改用.aasm.from\u states\u!”
MyModel.aasm_from_states_for_state(:finalstate, transition: :finish)