تصحيح digest_custom_html ليتم التعامل معه على أنه HTML (كانت: تجاوز digest.html.erb)

يا إلهي. يبدو أنني أستطيع!!! لم يخطر ببالي قط أنني أستطيع وضعه هناك وليس في أعلى القالب حيث يتم عرضه (على الأقل في رأسي).

أرى الآن وأفهم أن 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