Ruby 2.1, Rails 3.2
У меня есть эти отношения в моей модели проекта
scope :active, -> { where( deleted_at: nil ) }
has_many :foremen, class_name: "ProjectsUser", conditions: ['current_foreman = 1']
в контроллере:
@projects = Project.includes(:foremen).active
, который генерирует этот SQL
ProjectsUser Load (3.3ms) SELECT `projects_users`.* FROM `projects_users` WHERE `projects_users`.`project_id` IN (122, 130, ...etc.) AND ( current_foreman = 1)
но когда я называю отношения в представлении ...
<% @projects.each do |project| %>
<%= project.foremen.current_foreman %>
<% end %>
каждый раз запускается другой SQL-запрос.
ProjectsUser Load (2.5ms) SELECT `projects_users`.* FROM `projects_users` WHERE `projects_users`.`project_id` = 122 AND (current_foreman = 1 )
ProjectsUser Load (2.5ms) SELECT `projects_users`.* FROM `projects_users` WHERE `projects_users`.`project_id` = 130 AND (current_foreman = 1 )
ProjectsUser Load (2.5ms) SELECT `projects_users`.* FROM `projects_users` WHERE `projects_users`.`project_id` = 151 AND (current_foreman = 1 )
etc...
я что-то неправильно понимаю? не должны ли эти записи уже быть загружены?
как мне написать это, чтобы он выполнял только один запрос для ProjectsUser
?