1
我有一個ActiveRecord模型。我想在初始化時根據其屬性設置初始狀態。這是我的情況:用aasm寶石動態設置初始狀態
self.expected_delivery_date.blank? ? :in_preparation : :waiting
有沒有辦法做到這一點?這是一個壞主意嗎?
我有一個ActiveRecord模型。我想在初始化時根據其屬性設置初始狀態。這是我的情況:用aasm寶石動態設置初始狀態
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
中的邏輯設置不常見的初始狀態。