我有一个 ActiveRecord 模型。我想在初始化时根据其属性设置初始状态。这是我的条件:
self.expected_delivery_date.blank? ? :in_preparation : :waiting
有没有办法做到这一点?这是个坏主意吗?
我有一个 ActiveRecord 模型。我想在初始化时根据其属性设置初始状态。这是我的条件:
self.expected_delivery_date.blank? ? :in_preparation : :waiting
有没有办法做到这一点?这是个坏主意吗?
您可以定义一个 aasm 钩子方法并在那里设置状态:
class User < ActiveRecord::Base
include AASM
aasm do
state :submitted, initial: true
state :started
end
def aasm_ensure_initial_state
self.aasm_state = :started
end
end
这在我看来是合理的;您可以为最常见的初始状态提供initial: true
选项,然后使用逻辑输入aasm_ensure_initial_state
来设置不太常见的初始状态。