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