gpt4 book ai didi

ruby-on-rails - Transitions 类(状态机)获取可能的转换列表

转载 作者:数据小太阳 更新时间:2023-10-29 08:41:11 24 4
gpt4 key购买 nike

我在 Rails 3 中使用 ActiveRecord::Transitions 并将我的状态机定义为:

state_machine do
state :initial # first one is initial state
state :active
state :disabled

event :activate do
transitions :to => :active, :from => [:initial, :disabled]
end
event :disable do
transitions :to => :disabled, :from => [:initial, :active]
end
end

如何查看当前对象和状态的可用转换列表?例如,如果我有一个处于“事件”状态的@product,它应该告诉我

  • “禁用”是唯一可用的状态,或者
  • “禁用”是唯一可用的事件

最佳答案

我看不到任何明显的方法来枚举可能的下一个状态,但您可以像这样查询可用的事件:

YourClass.state_machines[:default].events_for(:active)
=> [:disable]

(如果您有多个状态机,YourClass.state_machines 哈希中将有其他成员)

关于ruby-on-rails - Transitions 类(状态机)获取可能的转换列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5206148/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com