يا إلهي. يبدو أنني أستطيع!!! لم يخطر ببالي قط أنني أستطيع وضعه هناك وليس في أعلى القالب حيث يتم عرضه (على الأقل في رأسي).
أرى الآن وأفهم أن digest_custom وأنها تستدعي .html_safe، بشكل جميل وسهل، في التعليمات البرمجية التي نظرت إليها وحاولت فهمها، لكنها مربكة (بالنسبة لي) أنها تستخدم هذه الصيغة الغريبة بدون أقواس. (أو ربما لم أكن لأراها أبدًا).
حسنًا، أرى القيم في اللغات المحلية، ولكن مقارنة بتجاوز القالب كما كنت أفعل من قبل، فهذا حل أقل خطورة بكثير.
شكرًا جزيلاً لك على توجيهي إلى المسار الصحيح!
إليك شيء آخر أفعله ويبدو سخيفًا. يحتاج digest_custom_html الخاص بي إلى المستخدم الذي يتم عرضه له، لذا فإن ما أفعله هو تجاوز digest لتعيين @user حتى يتمكن digets_custom_html الخاص بي من الوصول إلى المستخدم الذي يتم إرسال الملخص له. هل هناك طريقة سهلة للغاية يمكنني من خلالها تجنب القيام بذلك؟
after_initialize do
# التعليمات البرمجية التي يجب تشغيلها بعد انتهاء Rails من التمهيد
# require_relative "lib/discourse_add_jobs_to_digest/user_notifications_helper_override"
require_relative "lib/discourse_add_jobs_to_digest/engine"
require_relative "lib/discourse_add_jobs_to_digest/job_api"
require_dependency "user_notifications"
module ::UserNotificationsHelperOverride
def digest_custom_html(position_key)
if position_key == "above_footer"
DiscourseAddJobsToDigest::JobApi.get_jobs_html(@user).html_safe
else
super
end
end
end
UserNotificationsHelper.prepend(::UserNotificationsHelperOverride)
module ::UserNotificationsOverride
def digest(user, opts = {})
@user = user
super
end
end
UserNotifications.prepend(::UserNotificationsOverride)
end