Rails包含嵌套关系

时间:2011-12-18 20:17:18

标签: ruby-on-rails-3 activerecord relationship

我需要查询来自特定用户的所有帖子,并包含所有评论和属于评论的用户。

class User < ...
  has_many :posts
  has_many :comments
end

class Post < ...
  belongs_to :user
  has_many :comments
end

class Comment < ...
  belongs_to :user
  belongs_to :post
end

@posts = current_user.posts.include(:comments)

是否也可以获得评论用户?我列出了很多帖子和评论。我不想查询每个评论用户。

Thx / Tobias

2 个答案:

答案 0 :(得分:26)

尝试

@posts = current_user.posts.includes( :comments => :user)

详细了解here

答案 1 :(得分:10)

如何包含在关系定义语句中?

  

:包括
      指定加载此对象时应该急切加载的二阶关联。

class Post <
  belongs_to :user
  has_many :comments, :include => [:user], :limit => 5
end