私のユーザーモデルでは:
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 クラスの単なる別のインスタンスであることに注意してください。