Запуск явного события конечного автомата в фильтре before_

1
7

У меня есть модель ActiveRecord, использующая гем state-machines.

В ней я хочу вызвать событие в обратном вызове before_validation или before_save:

Однако

Как динамически вызвать события изнутри обратных вызовов before_?

class Model < ApplicationRecord
  state_machine initial: :pending do
    event :complete do
      transition pending: :complete, if: :some_guard_clause?
    end

    event :fail do
      transition pending: :failed, if: :some_other_guard_clause?
    end
  end

  before_validation :attempt_transitions

  private

  def attempt_transitions
    self.state_event = "complete" if can_complete?
    self.state_event = "fail" if can_fail?
  end
end
Ладимир
Вопрос задан13 мая 2024 г.

1 Ответ

Ваш ответ

Загрузить файл.