RGJ
(Richard - Communiteq)
2 سبتمبر 2026، 3:47م
494
همم، هل يعمل ذلك فعليًا؟ بناءً على خبرتي، فإن لمس Plugin::Instance بعد التهيئة لا يسير على ما يُرام.
pmusaraj
(Penar Musaraj)
2 سبتمبر 2026، 4:38م
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)
المشكلة الرئيسية هي أن الإضافات الأخرى أو النواة لا يمكنها الوصول إلى الطريقة المُضافة في المقدمة (prepended method). في هذه الحالة، لا يتم الوصول إلى الطريقة إلا من نفس الإضافة، في وقت لاحق من دورة الحياة.
إعجاب واحد (1)