RGJ
(Richard - Communiteq)
2. September 2026 um 15:47
494
Hmm, funktioniert das wirklich? Aus meiner Erfahrung heraus läuft es nicht gut, wenn man nach der Initialisierung auf Plugin::Instance zugreift.
pmusaraj
(Penar Musaraj)
2. September 2026 um 16:38
495
Das tut es. Wir nutzen es an mehreren Stellen innerhalb von after_initialize, zum Beispiel hier:
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)
Das Hauptproblem ist, dass andere Plugins oder der Core nicht auf die prepended Methode zugreifen können. In diesem Fall wird die Methode nur vom selben Plugin später im Lebenszyklus aufgerufen.
1 „Gefällt mir“