2013-12-20 2 views
0

사용자는 많은 게시물을 가지고 있으며 다음을 통해 많은 followees를 보냈습니다. 특정 사용자가 따르는 모든 사용자의 게시물을 모두 선택하려면 어떻게합니까?다음 모든 사용자의 모든 게시물을 얻으십시오.

class User < ActiveRecord::Base 
    attr_accessible :email, :pwd_hash, :token, :username, :password, :avatar 

    has_many(
    :follows_recieved, 
    class_name: 'Follow', 
    foreign_key: :followee_id, 
    primary_key: :id 
) 

    has_many :followers, through: :follows_recieved, source: :follower 

    has_many(
    :follows_sent, 
    class_name: 'Follow', 
    foreign_key: :follower_id, 
    primary_key: :id 
) 

    has_many :followees, through: :follows_sent, source: :followee 

    has_many(
    :posts, 
    class_name: "Post", 
    foreign_key: :user_id, 
    primary_key: :id 
) 

UPDATE

덕분에 바른 길에 나를 넣어 위해 screenmutt합니다.

내가 find_all_by_relation를 사용하지 수도 있지만이 사용할 수는 find_all_by_field

그래서 그냥 followee IDS

ids = Follow.find_all_by_follower_id(current_user.id).map{ |f| f.followee_id } 
posts = Post.find_all_by_user_id(ids) 

답변

1

작동해야이 비슷한 매핑. 언제든지이를 메서드로 추상화 할 수 있습니다.

Post.find_all_by_user(@current_user.followees) 
0

난 당신이

has_many :posts 

대신

쓸 수있을 것 같아요
관련 문제