Corrigindo digest_custom_html para ser tratado como HTML (antes: Sobrepor digest.html.erb)

O.M.G. Aparentemente . . . Eu posso!!! Nunca teria ocorrido a mim que eu poderia colocá-lo lá e não até o final do template onde (pelo menos na minha cabeça) ele é renderizado.

Agora eu vejo e entendo que digest_custom e que ele está chamando .html_safe, muito bonito, no código que eu olhei e tentei entender, mas é confuso (para mim) que ele esteja usando aquela sintaxe sem parênteses. (Ou talvez eu nunca o teria visto).

Bem, eu vejo os valores nos locais, mas em comparação com a substituição do template como eu estava fazendo antes, esta é uma solução muito menos arriscada.

Muito obrigado por me colocar no caminho certo!

Aqui está outra coisa que estou fazendo que parece boba. Meu digest_custom_html precisa do usuário para o qual está sendo renderizado, então o que estou fazendo é substituir digest para definir @user para que meu digets_custom_html possa ter acesso ao usuário para o qual o resumo é destinado. Existe alguma maneira super fácil de evitar isso?

after_initialize do
  # Código que deve ser executado após o Rails terminar de inicializar

  # 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