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