Я работаю над гемом, который генерировал бы уведомления, основанные на триггерах событий.Например, в CMS, если статья создается, генерируется уведомление «Статья x, созданная пользователем y».(например, уведомления Github / Facebook).
В моем геме у меня есть метод has_notifications, который при указании в модели регистрирует обратных вызовов .
ПроблемаКонечно, когда вызывается обратный вызов, в геме вызывается соответствующее действие, но для этого действия потребуется идентификатор пользователя, который выполнил действие для генерации уведомления.
IЯ искал acts_as_audited и paper_trail для вдохновения, но оба используют переменную Thread.current для хранения пользовательской информации, которая, конечно, я считаю, хакерская и небезопасная .
С точки зрения базового дизайна, я делаю это правильно?Какие еще есть варианты, чтобы получить информацию о пользователях из моего драгоценного камня?Стоит ли вместо этого настраивать фильтры на соответствующих контроллерах для создания уведомлений, которые в случае будут использовать метод vanilla current_user?
Любые идеи будут оценены.Спасибо.
Обновление
Я смотрю на использование виртуальных атрибутов для моделей с обратными вызовами уведомлений и настройку их в соответствующих контроллерах с использованием фильтров перед.