私はポストとカテゴリモデルを持っているとします。各ポストはカテゴリに属しています。ほとんどすべてのページで、私はカテゴリのリストを取得しています:Rails:不要なデータベースクエリを削除する
これはカテゴリオブジェクトの配列を生成します。今度は、各カテゴリにid属性とname属性があるとします。投稿を見るときに、カテゴリ名を表示したい。
私はもともとこのような何かを行うことによって、カテゴリ名を得ていた。
@post = Post.find(params[:id], :include => :category)
は、しかし、私はすでに@categories配列を持っていることを実現します。私がすでにカテゴリのリストを持っているときに含めることは不要です。代わりに、私は今、配列の検索を実行しています:
category = @categories.find { |category| @post.category_id == category.id }.name
これは機能し、クエリの数を減らします。私の質問は、これがキャッシングなしでクエリの数を減らすための最良の方法である場合です。
良い点。 unf。票が残っていません:) –