У меня есть модель 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
Зоя
Вопрос задан11 августа 2024 г.