Plugins Discourse et configuration Rails 6 config/initializers Question

Ce que j’ai fait récemment, bien que je ne sois pas encore un expert suprême comme beaucoup d’entre vous dans la création d’applications Rails, c’est de planifier quelles variables de configuration doivent être rechargées sans redémarrer Rails, et de déplacer ce code dans le ApplicationController.

Je suis certain qu’il existe de meilleures façons de faire cela, mais puisque cette implémentation Rails particulière est une application de back-office et que la performance n’est pas un problème :

class ApplicationController < ActionController::Base

  before_action  :set_site_settings

  private

  def set_site_settings
    @use_custom_date_format = Sitesetting.where(name: "custom_date_format").pluck(:value).last
  end

end

Je serai ravi lorsque je trouverai une meilleure façon de faire cela !

Cependant, déplacer cela hors des initialisateurs de Rails signifie que l’utilisateur peut modifier ce paramètre du site facilement, car il est maintenant dans la base de données en utilisant un scaffold CRUD MVC de base de Rails.

Puisque la mise en cache SQL dans Rails ne fonctionne pas en dehors du scope d’une action, un jour je devrai apprendre comment déplacer cela vers la mise en cache et m’assurer que le cache est vidé lorsque le contrôleur Rails traite l’action (par exemple, sauvegarder une nouvelle valeur dans le contrôleur des paramètres du site, etc.).

Quoi qu’il en soit, cette application Rails cliente (back-office uniquement) n’est pas destinée à une utilisation haute performance, donc ajouter la requête au contrôleur d’application fonctionne bien et m’évite de répéter ce code dans chaque contrôleur du projet où ce paramètre du site est requis.