【问题标题】:How to set up a guard at the state level in AASM如何在 AASM 中设置州级警卫
【发布时间】:2016-08-01 02:08:04
【问题描述】:

有没有办法定义在任何情况下进入状态(例如running)之前检查的守卫(例如has_legs?)?

在所有可能的回调列表中,有事件和转换的守卫,但没有事件。

我尝试对模型进行条件验证。它在事件执行中有效,但不适用于 aasm 方法(例如may_run?)。

【问题讨论】:

  • 你能展示你的代码吗?

标签: ruby-on-rails aasm


【解决方案1】:

我不知道内置方法。我会使用包含默认选项的哈希的解决方法。

DEFAULT_EVENT_OPTS = { guard: ... }
DEFAULT_TRANSITION_OPTS = { ... }

event :clean, DEFAULT_EVENT_OPTS.merge({ ... }) do
  transitions DEFAULT_TRANSITION_OPTS.merge({:from => :running, :to => :cleaning, :guard => :cleaning_needed?})
end

【讨论】:

    猜你喜欢
    • 2011-01-23
    • 1970-01-01
    • 1970-01-01
    • 2017-09-05
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 2020-12-14
    相关资源
    最近更新 更多