0

私のユーザーモデルでは:

class User < ActiveRecord::Base
    has_many :received_messages 
             :foreign_key => 'recipient_id        
end

メッセージコントローラーのインデックスアクションには、次のものがあります。 @messages = current_user.received_messages

私の見解では(実際のコードの短いバージョン):

<% @messages.each do |message| %>
    <%= message.sender.full_name %><br>
    <%= truncate(message.body, :length => 50) %>
<%end%>

問題は、メッセージごとに、メッセージ送信者のデータベースを照会することです。SO 20 のメッセージがある場合、20 のリクエストがデータベースに送信されます。どうすればそれを回避できますか? Eager loading と について読んでい:includesますが、このインスタンスに適用する方法がわかりません。

送信者は User クラスの単なる別のインスタンスであることに注意してください。

4

1 に答える 1