ActiveRecord:返回属于Ancestry nodetree的对象

时间:2012-07-15 19:34:32

标签: ruby-on-rails-3

我有一个Category模型,它使用Ancestry gem来创建树层次结构。如果我有模特关系,

Category has_many :posts

我想知道如何归还属于某一类别或该类别儿童的帖子。 category.subtree返回一个ARel对象,所以我可以这样做:

category.subtree.includes(:posts)

按类别映射帖子,但我只想要帖子。我唯一能想到的就是迭代集合并创建一个刚刚发布的新集合。

1 个答案:

答案 0 :(得分:0)

尝试:

Post.where('category_id in (?)', category.subtree_ids)

我现在不记得,如果subtree_ids还会返回类别本身的id。