0
レールモデルでDBの関係を使用してクエリを最適化アクティブレコードまたはSQLクエリを使用します。私は基本的に上記のコードがループを完了するのにかかる時間とDBのクエリを削減したい。アクティブレコードレール
ありがとうございます。あなたが積極的なロードuser_messages
あるので、それはループ内の他のDBクエリを起動しません、
users = User.where(id: ids).includes(:user_messages)
users.each do |user|
unread_count = user.user_messages.where(:folder => user.inbox_id, :read => false).count
puts "UserID #{user.id} ---- Unread Message count #{unread_count}"
end
:
byとcountでグループ化された左結合の仕事のように聞こえます。あなたはsqlの基本的なチュートリアルをやってみましたか? – Shadow
'unread_count'カラムを' users'テーブルに格納して、各ユーザに 'unread_count'を格納する必要があります。 – Thanh
ThanhこのModel.importメソッドを使用してuser_messagesテーブルに大量のデータを挿入するため、ユーザーテーブルに未読カウントを格納できます。 – user1969191