Несколько конечных автоматов в одной модели для перечислимых полей с AASM

Я использую Rail 4.2.3 и aasm gem версии 4.1. Можно ли добавить два конечных автомата в одну модель для перечисляемых полей?

У меня есть состояние enum: [:active,: приостановлено,: удалено] и enum активность: [:working,: остановлено]

и я не буду 2 конечных автомата, как это:

aasm(:connection_state, column: :state, enum: true do
    state :active, initial: true
    state :suspended
    state :deleted

    event :activate do
      transitions from: :suspended, to: :active
      transitions from: :deleted, to: :active
    end

    event :suspend do
      transitions from: :active, to: :suspended
    end

    event :mark_as_deleted do
      transitions from: [:active, :suspended], to: :deleted
    end
  end

и другой конечный автомат:

aasm(:activity_state, column: :activity, enum: true do
    state :working, initial: true
    state :stopped

    event :start_working do
      transitions from: :stopped, to: :working
    end

    event :stop_working do
      transitions from: :working, to: :stopped
    end
  end

но спецификации не работают с ошибкой:

expect(subject).to transition_from(:active).to(:suspended).on_event(:suspend)

AASM:: UnknownStateMachineError: Нет конечного автомата с именем 'default', определенным в ModelName

Чего мне не хватает?

1 ответ

В моей спецификации была проблема, только не прочитанная тщательно:

expect(subject).to transition_from(:active).to(:suspended).on_event(:suspend).on(:connection_state)

решает проблему

Другие вопросы по тегам