У нас запущено многопользовательское рельсовое веб-приложение с большим количеством клиентов. У нас есть своего рода модуль рабочего процесса, в котором после выполнения действия клиенту необходимо запускать различные виды логики, которые совершенно не имеют значения. Например, после этого действия клиент A хочет обновить некоторые детали в нашем приложении и отправить несколько электронных писем. Но клиент B хочет, чтобы мы запустили отчет после выполнения этого действия. Поэтому для решения этой проблемы мы прибегли к хранению рубинового кода в базе данных с идентификатором клиента, а после выполненного действия мы берем этот код и выполняем его с помощью eval. Я как-то чувствую, что это уродливый способ делать вещи. Как можно сделать это лучше. Логика совершенно случайна для разных клиентов. Так что вы, ребята, предлагаете, лучший способ справиться с этим?