我无法理解如何使用关联获取所有相关记录,而不是关联ID,如user_id
和comment_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
。 我想在单个查询中执行此操作。 如果您有任何想法,请给我建议。
尝试'@ user.comments.first.post',它会返回一个'POST'实例。谨防这种方法中的[“N + 1查询”](https://www.sitepoint.com/silver-bullet-n1-problem/)问题得到解决,但这不在您的问题范围之内。 – mudasobwa
感谢您的考虑@mudasobwa。但我的问题是我想收集评论,而不是post_id,而且每个评论都有相应的帖子记录。我不想做一个循环来获取他们每个人的帖子 –