2016-11-16 141 views
0

X先生喜欢只用Y先生取得一个职位关系Ruby on Rails的:用“的has_many”

如何创建X先生和Y先生之间的关系,看在Y先生的文章吗? (见建议帖)

user.rb

has_many :posts 
    has_many :liked_posts, through: :liked, source: :post 

post.rb

def liked_by?(user) 
    likes.where(user: user).any? 
    end 

likes.rb

# id   :integer   not null, primary key 
# user_id :integer   not null 
# like_id :integer   not null 

我应该使用的uniq?

回答

0

我不是100%肯定,如果你的意思是这样,但如果你想通过LikePost到相关User那么作为进行:

user.rb

has_many :posts 
has_many :likes 
has_many :liked_posts, through: :likes 

post.rb

has_many :likes 

def liked_by?(user) 
    self.likes.where(user: user).any? 
end 

likes.rb

belongs_to :user 
belongs_to :post 

你必须添加相应的数据库迁移到属性添加到likes

+0

不......我想创建X先生和Y先生 之间的新关系。例如看到(在先生X“仪表板”,Y先生制作的其他帖子) – Kevin77

+0

您可以通过X的仪表板获得“朋友”关系one_to_many,如果他们是朋友,您可以访问Y帖子:'x.friends.find(user :y).posts' – alexunger

+0

因为'user has_many posts'后面的代码片段应该可以在您设置关系后运行。 – alexunger

相关问题