1

まず、これは最高のタイトルではないかもしれませんが、現時点では理にかなっているようです。

私が見ているのは、Web アプリの存続期間中存続する必要があるリソースをロードすることです。後で手動更新のためにプロビジョニングが行われる可能性がありますが、現在はそうではありません。

複数の理由から、データベースに常駐する複雑な権限構造があります。ページの読み込みごとにこれを取得するオーバーヘッドが発生したくないため、メモリに常駐させたいと考えています。私の最初の本能は、これをロードするシングルトンを作成し、許可を検索するために必要なときにいつでも使用することです。シングルトンに対するためらいを理解しており、それが貧弱なアプローチであるかどうか疑問に思います。

yaml や別のストレージ メカニズムのルートをたどりたくありません。パーミッションは、他の依存関係のために DB に存在する必要があります。とはいえ、Rails でデータを効率的に読み込んだり読み込んだりするための最も適切な方法は何でしょうか?

4

2 に答える 2

3

これは、キャッシュの完璧な使用法のように聞こえます

permissions = Rails.cache.fetch( 'permissions' ) do
  # Permissions don't exist yet, perform long operation and load from DB
  load_permissions_from_db
end

詳細はこちら

于 2011-04-26T17:06:19.543 に答える
0

言いたいことはよくわからないけど、いくつかの方法があると思う

  • キャッシング(caches_page :pageまたはcaches_action :actionコントローラー内など)
  • または、Cookie /セッションデータに何かを保存する可能性があります。もちろん、このデータの性質を完全には理解していないため、何がうまくいくかはわかりません。
于 2011-04-26T17:12:06.433 に答える