使用关联获取所有相关记录

时间:2016-06-28 09:47:28

标签: ruby-on-rails ruby postgresql

我无法理解如何使用关联而不是user_idcomment_id之类的关联ID来获取所有相关记录。 假设我有三个模型User, Post, Comment, Image,关联是

User
  has_many :posts
  has_many :comments

Post
  belongs_to :user
  has_many :comments
  has_many :images

Comment
  belongs_to :user
  belongs_to :post

Image
  belongs_to :post

现在我有一个user_id用户并找到用户:

@user = User.find_by_id(params[:id])
@comments = @user.comments

现在我想获取这些评论,每个评论都是他们帖子的相关记录。我希望发布哈希而不是每个评论对应的post_id。 我想在一个查询中执行此操作。 如果您有任何想法,请建议我。

1 个答案:

答案 0 :(得分:2)

使用ID DC1 Date 1 sth2 2016-01-01 2 sth2 2014-01-01

includes(:association)

注意:这将进行另一个(第二个)查询。

或者,将其包含在初始查询中:

@user = User.find_by_id(params[:id])
@comments = @user.comments.includes(:post)