# typed: true class ProfilesController < ApplicationController extend T::Sig def show @user = User.find_by!(username: params[:username]) unless @user.profile_public? || @user == current_user redirect_to root_path, alert: "This profile is private." return end @total_games = @user.games.count @physical_games = @user.games.physical_games.count @digital_games = @user.games.digital_games.count @completed_games = @user.games.completed.count @games_by_platform = @user.games.joins(:platform) .group("platforms.name") .count .sort_by { |_, count| -count } .first(10) @public_collections = @user.collections.root_collections.order(:name) @recent_games = @user.games.includes(:platform).recent.limit(10) end end