cancan を使用して ~130 個のコントローラーへのアクセスを承認しています。現状では、このプロセスは承認ごとに ~100ms かかります..これは非常に遅いです (メニュー バーをレンダリングするだけで文字通り約 1 秒かかります)。
cancan を分割して、承認ごとに必要な作業を簡素化するため、または一般的に高速化するための手法はありますか?
カンカン体験を共有できる人はいますか?
それでは、もう少し詳しく説明してみましょう.. cancan をカスタムの役割システムと組み合わせました。各役割にはいくつかの権限があり、ユーザーが特定のことを行うことが許可されているかどうかに基づいて、cancan ルールが動的に構築され、許可されます。最終的に、現在ログインしているユーザーのロールのパーミッションに基づいて動的な数百行のルールを含むただ 1 つの capability.rb ファイルがあります。(役割も動的です)。
DB クエリは既に最適化されており、すべてが事前に熱心にロードされており、そのようなものをフェッチするために無駄なクエリが実行されることはありませんが、チェックごとに 100 ミリ秒が通過します。