Using :through and belongs_to

I’m trying to reduce the mysql calls by using :include or :through and
both methods don’t seem to work.

Here’s the breakdown: users can have friends and an avatar (image),
so my models are setup like this:

User
has_many :images, :as => :imageable
has_many :friends

Image
belongs_to :imageable, :polymorphic => true

Friend
# The user
belongs_to :owner_user, :class_name => “User”, :foreign_key =>
“user_id”,

# The friend
belongs_to :user, :class_name => "User", :foreign_key =>

“friend_id”

When I list all of the User’s friends with their avatars, a MySql
query is made for each friend image. This adds up to a lot of mysql
requests. So my first plan was to add :include to the Friend
association:

Friend
# The friend
belongs_to :user, :class_name => “User”, :foreign_key =>
“friend_id”, :include => :images

For some reason this did not reduce the nubmer of mysql queries, so I
tried a :through association:

Friend
# The friend
belongs_to :user, :class_name => “User”, :foreign_key =>
“friend_id”

has_many :images, :through => :user, :limit => 1

Now I get the following error (most likely do to the foreign_key in
the belongs_to association):

Mysql::Error: Unknown column ‘users.friend_id’ in ‘where clause’:
SELECT images.* FROM images INNER JOIN users ON images.imageable_id =
users.id AND images.imageable_type = ‘User’ WHERE ((users.friend_id
= 2)) LIMIT 1

Why is it mapping the foreign_key incorrectly? Is it because I’m
pointing the :through to a belongs_to association? I would appreciate
any solution to this issue.

Thanks,
Jeremy

I’m actually having this exact same problem. Anyone know how to set up
this
polymorphic through association?