Correction de digest_custom_html pour qu'il soit traité comme du HTML (était : surcharge de digest.html.erb)

O.M.G. Apparemment . . . Je peux!!! Il ne me serait jamais venu à l’esprit que je pourrais le mettre là et pas tout en haut du modèle où (dans ma tête, du moins) il est rendu.

Je vois et comprends maintenant que digest_custom et qu’il appelle .html_safe, joliment comme il faut, dans un code que j’ai regardé et essayé de comprendre, mais c’est déroutant (pour moi) qu’il utilise cette syntaxe funky sans parenthèses. (Ou peut-être que je ne l’aurais jamais vu).

Eh bien, je vois les valeurs dans les locales, mais comparé à la surcharge du modèle comme je le faisais auparavant, c’est une solution beaucoup moins risquée.

Merci infiniment de m’avoir mis sur la bonne voie !

Voici une autre chose que je fais et qui me semble stupide. Mon digest_custom_html a besoin de l’utilisateur pour lequel il est rendu, donc ce que je fais, c’est de remplacer digest pour définir @user afin que mon digets_custom_html puisse avoir accès à l’utilisateur pour lequel le digest est destiné. Y a-t-il un moyen super simple d’éviter cela ?

after_initialize do
  # Code qui doit s'exécuter après le démarrage complet de Rails

  # 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