Fixierung von digest_custom_html als HTML (bisher: Überschreiben von digest.html.erb)

O.M.G. Anscheinend . . . kann ich das!!! Es wäre mir nie in den Sinn gekommen, dass ich es dort einfügen könnte und nicht ganz oben in der Vorlage, wo es (zumindest in meinem Kopf) gerendert wird.

Ich sehe und verstehe jetzt, dass digest_custom und dass es .html_safe aufruft, hübsch wie es ist, in Code, den ich mir angesehen und zu verstehen versucht habe, aber es ist verwirrend (für mich), dass es diese seltsame Syntax ohne Klammern verwendet. (Oder vielleicht hätte ich es nie gesehen).

Nun, ich sehe die Werte in den Lokalisierungen, aber im Vergleich zur Überschreibung der Vorlage, wie ich es zuvor getan habe, ist dies eine weitaus weniger riskante Lösung.

Vielen Dank, dass Sie mich auf den richtigen Weg gebracht haben!

Hier ist noch eine Sache, die ich mache und die sich albern anfühlt. Mein digest_custom_html benötigt den Benutzer, für den es gerendert wird. Deshalb überschreibe ich digest, um @user festzulegen, damit mein digets_custom_html Zugriff auf den Benutzer hat, für den der Digest bestimmt ist. Gibt es eine super einfache Möglichkeit, dies zu vermeiden?

after_initialize do
  # Code, der ausgeführt werden soll, nachdem Rails das Booten abgeschlossen hat

  # 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