current_user.friends.posts

Hi all,

I have a pretty simple set of models.

current_user has a bunch of friends and each friend makes a lot of posts.

I want to do something like current_user.friends.posts but the posts method is missing.

I've come up with a bunch of ways to accomplish this but nothing looks very good. What's the most elegant way to do it?

Thanks, Alex

Thanks so much for your reponse.

Right now I have the following code:

has_many :friendships_by_me,            :foreign_key => 'user_id',            :class_name => 'Friendship' do      def posts       Post.find(:all,                 :include => {:user, :friendships},                 :conditions => ['friendships.user_id = ?', self.id])      end

which should work but self.id is returning the id of the Friendship class. How do I get it to return the id of the user?

Thanks, Alex

This little one liner should do it for you, if I'm not mistaken.

current_user.friends.map(&:posts)

which is equivalent to:

current_user.friends.map{|f| f.posts}

Tyler

Awesome!

What worked for me was:

has_many :friends do   def posts     map(&:posts)   end end

That is so much nicer looking then my first attempt.