Module: AASM::HandleEvent

Defined in:
lib/c80_shared/aasm/handle_event.rb

Instance Method Summary collapse

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