Module: AASM::HandleEvent
- Defined in:
- lib/c80_shared/aasm/handle_event.rb
Instance Method Summary collapse
-
#handle_event(event) ⇒ Object
Конечный автомат принимает событие и AASM переводит модель в нужное состояние.
Instance Method Details
#handle_event(event) ⇒ Object
Конечный автомат принимает событие и AASM переводит модель в нужное состояние.
Метод создан с целью изоляции зависимости всего остального кода от исключительных ситуаций, генерируемых gem AASM
7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/c80_shared/aasm/handle_event.rb', line 7 def handle_event(event) if send('may_%s?' % event) # сначала проверим, можем ли перейти в такое состояние send event # шлём event (меняется состояние Предложения) return true end false rescue NoMethodError, AASM::InvalidTransition errors.add :not_updated, I18n.t('activerecord.errors.not_updated') Rails.logger.warn '[InquiryStates.handle_event] Unknown event %s.' % event false end |