В моей модели пользователя:Rails: Оптимизация запросов к базе данных для связи has_many
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 и :includes
, но я не знаю, как применить его в этом экземпляре.
Обратите внимание, что отправитель является еще одним экземпляром класса User.
Огромное спасибо !!!!!! – pratski