この質問は少し具体的かもしれませんが、一般的な視点からも興味深いと思います。
Rails アプリでは、ユーザーは他のユーザーにサブスクライブできます。現在のユーザーがリスト内のユーザーにサブスクライブしているかどうかを確認する必要があるユーザーのリストを表示するとき。彼が購読している場合は、購読解除ボタンを表示し、その逆です。
全体が現在のユーザーに依存するため、熱心な読み込みは使用できません。したがって、リストに 20 人のユーザーを表示すると、DB で 20 の追加ヒットが生成されます。これは悪い習慣のように思えます。
この問題を解決する良い方法を考えています。私がこれまでに思いついた最善の解決策は、ログイン中に current_user がセッションでサブスクライブしたユーザーの ID をロードし、セッションの ID に対してすべての user.id をチェックすることです。しかし、ユーザーが多くの人にサブスクライブしている場合、これは他の問題につながる可能性があります. また、ユーザーがこのセッション中にユーザー リストをまったく見ない場合でも、すべてのサブスクリプションを読み込むのが最善の方法かどうかはわかりません。
私の頭に浮かんだ次善の策は、同じことをすることでしたが、ログイン中ではなく、代わりにユーザーリストがロードされたときに行いました。
どう思いますか?