RGJ
(Richard - Communiteq)
02.Сентябрь.2026 15:47:15
494
Хм, а это действительно работает? По моему опыту, обращение к Plugin::Instance после инициализации обычно заканчивается плохо.
pmusaraj
(Penar Musaraj)
02.Сентябрь.2026 16:38:41
495
Да, мы используем его в нескольких местах внутри after_initialize, например:
Guardian.prepend Chat::GuardianExtensions
UserNotifications.prepend Chat::UserNotificationsExtension
Notifications::ConsolidationPlan.prepend Chat::NotificationConsolidationExtension
UserOption.prepend Chat::UserOptionExtension
Category.prepend Chat::CategoryExtension
Reviewable.prepend Chat::ReviewableExtension
Bookmark.prepend Chat::BookmarkExtension
Upload.prepend Chat::UploadExtension
User.prepend Chat::UserExtension
Group.prepend Chat::GroupExtension
Plugin::Instance.prepend Chat::PluginInstanceExtension
Jobs::ExportCsvFile.prepend Chat::MessagesExporter
WebHook.prepend Chat::OutgoingWebHookExtension
end
Oneboxer.register_local_handler("chat/chat") do |url, route|
Chat::OneboxHandler.handle(url, route)
end
InlineOneboxer.register_local_handler("chat/chat") do |url, route|
Chat::InlineOneboxHandler.handle(url, route)
Основная проблема в том, что другие плагины или ядро не могут получить доступ к добавленному методом prepend методу. В данном случае этот метод вызывается только самим плагином, на более позднем этапе жизненного цикла.
1 лайк