Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/55.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails rails aasm:获取允许特定事件的所有状态_Ruby On Rails_Aasm - Fatal编程技术网

Ruby on rails rails aasm:获取允许特定事件的所有状态

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新手,正在尝试获取MyModel模型中可以转换为状态的所有状态的列表:newstate

例如:

  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)