Ruby初心者です。以下のようなロジックで、each doの中でDBを参照しようとしています。

maxrating変数にUear_Ratingテーブルでratingがmaxとなる値をとって、それと事前にとっておいたbooksテーブルのidを使ってwhere条件でレコードを取得しようとしていますが、どうしても結果が最後に取得したレコードだけとなってしまいます。とても基本的な事だと思いますが、よくわからず困っていますので、解決方法を教えてください。

@books.each do |sb|
 maxrating = User_Rating.where(book_id: sb.id).maximum(:rating)
  @search_result = User_Summary.joins('LEFT OUTER JOIN Books ON user_summaries.book_id = books.id').joins('LEFT OUTER JOIN user_ratings ON user_summaries.id = user_ratings.user_summary_id').where("user_summaries.book_id = #{sb.id}").where("user_ratings.rating = #{maxrating}").select('User_Summaries.comment, User_Ratings.rating')
end