Lo que hice recientemente, aunque aún no soy un experto superado como muchos de ustedes en la creación de aplicaciones Rails, fue planificar qué variables de configuración deberían recargarse sin reiniciar Rails y mover ese código al ApplicationController.
Estoy seguro de que existen formas mejores de hacerlo, pero dado que esta implementación específica de Rails es una aplicación de back-office y el rendimiento no es un problema:
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
Estaré encantado cuando encuentre una mejor manera de hacerlo.
Sin embargo, al sacar esto de los inicializadores de Rails, el usuario puede cambiar esta configuración del sitio fácilmente, ya que ahora está en la base de datos utilizando un scaffold básico de CRUD de Rails MVC.
Dado que la caché SQL en Rails no funciona fuera del alcance de una acción, algún día necesitaré aprender cómo mover esto a la caché y asegurarme de que la caché se limpie cuando el controlador de Rails procese la acción (por ejemplo, guardar un nuevo valor en el controlador de configuraciones del sitio, etc.).
De todos modos, esta aplicación de cliente Rails (solo para back-office) no está diseñada para un uso de alto rendimiento, por lo que agregar la consulta al controlador de aplicaciones funciona bien y me evita repetir este código en cada controlador del proyecto donde se requiera esa configuración del sitio.