Corregir digest_custom_html para que se trate como HTML (antes: Sobrescribir digest.html.erb)

O.M.G. Aparentemente . . . ¡¡¡¡¡puedo!!! Nunca se me habría ocurrido que pudiera ponerlo ahí y no hasta arriba en la plantilla donde (al menos en mi cabeza) se renderiza.

Ahora veo y entiendo que digest_custom y que está llamando a .html_safe, muy bien, en código que miré y traté de entender, pero es confuso (para mí) que esté usando esa sintaxis sin paréntesis. (O tal vez nunca lo habría visto).

Bueno, veo los valores en las locales, pero en comparación con sobrescribir la plantilla como lo estaba haciendo antes, esta es una solución mucho menos arriesgada.

¡Muchas gracias por ponerme en el camino correcto!

Aquí hay otra cosa que estoy haciendo y que me parece tonta. Mi digest_custom_html necesita el usuario para el que se renderiza, así que lo que estoy haciendo es sobrescribir digest para establecer @user para que mi digets_custom_html pueda tener acceso al usuario para el que es el digest. ¿Hay alguna manera súper fácil de evitar hacer eso?

after_initialize do
  # Código que debería ejecutarse después de que Rails haya terminado de arrancar

  # 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