gpt4 book ai didi

ruby-on-rails - AASM:根据条件转换为2种不同的状态

转载 作者:行者123 更新时间:2023-12-04 06:10:19 24 4
gpt4 key购买 nike

我正在使用AASM。根据条件,是否可能有2种不同的状态?例如:

aasm_event :completes do
transitions :to => condition? ? :complete : :terminate,
:from => [:active]
end

这样做的目的是因为我使用的是旧版代码,并且有很多“完成”调用,并且终止状态是新的。

我已经尝试在新文件中覆盖状态机为
aasm_event :completes do
transitions :to => :terminate,
:from => [:active]
end

但它没有用,但仍处于完整状态

最佳答案

为此,您可以为每个过渡设置一个guard,它将在实际运行过渡之前运行:

aasm_event :completes do
transitions :from => [:active], :to => :complete, :guard => :condition?
transitions :from => [:active], :to => :terminate
end

def condition?
some_contition
end

如果 :complete为true,它将转换为 :condition?,否则它将转换为 :terminate

关于ruby-on-rails - AASM:根据条件转换为2种不同的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26289959/

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