Utilizando state_machine de pluginaweek, ¿puedo hacer referencia al objeto activerecord durante un evento?

Estoy tratando de implementar un evento de "suspensión" que transita el objeto al estado: suspendido. Pero necesito poder "desuspender" y volver al estado anterior. Agregué un campo previo_estado al modelo, pero no puedo ver cómo acceder a él dentro de un bloque de eventos.

Esta es la lógica básica que estoy tratando de implementar:

event :suspend do
  owner.previous_state = self.state
  transition [:new, :old] => :suspended
end

event :unsuspend do
  transition :suspended => owner.previous_state.to_sym
  owner.previous_state = nil
end

Los documentos de state_machine no han sido muy útiles, y no puedo encontrar ejemplos en línea. A veces es difícil saber cómo describir algo a google:)

Respuestas a la pregunta(3)

Su respuesta a la pregunta