dúvida modelagem rails

Tenho uma aplicação rails e tenho uma entidade Ticket que tem pode ter um status de cada vez.
Esse ticket tem um ‘ciclo de vida’ e esse ciclo vai se completando na medida que os usuarios do sistema mudam seu status.

Os status do ticket são mudados na view dele através de um combobox, e cada vez que o status é alterado uma série de ‘eventos’ são disparados alterando o estado de outros objetos do sistema, enviando e-mails, etc…

Acontece que como a aplicação está crescendo estou com medo do spagethi que tá virando meu código.
Gostaria de susgestões de como gerenciar as mudanças de status e os eventos que são disparados quando elas mudam.
Quero separar esse comportamento todo em uma classe, de modo que depois fique mais fácil de testá-lo usando uma ferramenta de testes.

Toda opinião é bem-vinda!

Já deu uma olhada no acts_as_a_state_machine ?
Acho que resolve seu problema.

Bom, não conheço a sugestão do colega acima, desculpe se minha sugestão for muito “pensamento de programador Java”, mas em Java eu pensaria em usar algo como a pattern State (http://en.wikipedia.org/wiki/State_pattern).

Uma vez vi em um projeto uma coisa bem bacana, o cara fez o atributo status ser uma enum e colocou metodos na “interface” da enum e cada “valor” da enum implementando essse status duma maneira diferente. Quem sabe não rola fazer algo assim.