Я отредактировал свой ответ, чтобы отразить ваши дополнительные комментарии.
Прежде всего, вам не нужен параметр :joins
; :include => :photos
должен обработать соединение "за кулисами" для вас.
Вот один из способов сделать то, о чем вы спрашиваете.
(в моделях)
class Profile < ActiveRecord::Base
has_many :photos
has_one :primary_photo, :class_name => "Photo", :conditions => {:primary => true}
end
(в контроллере)
@profiles = Profile.find(:all, :include => :primary_photo)
(в представлении)
<% @profiles.each do |profile| %>
Name: <%= profile.name %>
Age: <%= profile.age %>
Photo: <%= image_tag profile.primary_photo.url %>
<% end %>