Rails アプリの非常に基本的な分析機能を作成しています。プロファイルを閲覧した訪問者の数をユーザーに示す統計を提供し、各訪問者が持つ特定の役割 (アプリで「rolify」を使用しています) に従ってそれらを分類したいと考えています。
Usersコントローラーのshowアクションで、これを行います
@profileviews = Profileview.where(:user_id => @user.id)
@profileviewsbysomerole = Profileview.where({:user_id => @user.id, :viewer_role => 'someRole'})
@profileviewsbysomeotherrole = Profileview.where({:user_id => @user.id, :viewer_role => 'someOtherRole'})
そして、ショーアクションで、私はやります
Your profile has been viewed <%= @profileviews.size %> times.
Your profile has been viewed by users with a particular role <%= @profileviewsbysomerole.size %> times.
Your profile has been viewed by users with some other role <%= @profileviewsbysomeotherrole.size %> times.
3 つの個別のクエリを作成せずに私がやろうとしていることを達成する方法はありますか、またはこれが (パフォーマンスを低下させないという点で) これらの統計を取得するための最良の方法ですか?