DiscourseプラグインとRails 6のconfig/initializersに関する質問

最近、Rails アプリ構築において皆さんほど超エキスパートではない私が行ったのは、Rails を再起動せずに再読み込みすべき設定変数を計画し、そのコードを ApplicationController へ移動させることです。

もっと良い方法があるのは確かですが、この特定の Rails 実装はバックオフィス用アプリであり、パフォーマンスは問題ではないためです:

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

より良い方法を見つけられたときは嬉しいです!

ただし、これを Rails のイニシャライザから外すことで、ユーザーはこれをデータベース上の基本的な Rails MVC CRUD スケルトンとして簡単にサイト設定を変更できるようになります。

Rails の SQL キャッシュはアクションの範囲外では機能しないため、いつかこれをキャッシュに移行し、Rails コントローラがアクションを処理する際(例えば、サイト設定コントローラで新しい値を保存するなど)にキャッシュがクリアされるようにする方法を学ぶ必要があります。

とにかく、このクライアント向け Rails アプリ(バックオフィス専用)は高性能用途ではないため、クエリを ApplicationController に追加するだけで十分機能し、プロジェクト内の各コントローラでこのサイト設定が必要な場合にコードを繰り返す必要がなくなります。