ActiveRecord查找子资源的所有子项

时间:2013-11-18 17:20:50

标签: sql ruby-on-rails ruby activerecord

我有Project has_many :locationsLocations has_many :comments,以及Project has_many :plansPlan has_many :comments。如何选择属于项目的所有可评论资源的所有注释?我正在使用ActiveAdminActiveAdmin::Comment,如果这是相关的。我尝试了什么:

p = Project.first
comments = p.locations.map(&:comments).flatten + p.plans.map(&:comments).flatten

但是有没有ActiveRecord或Rails的方法呢?或者是否有SQL连接可以做到这一切?谢谢!

1 个答案:

答案 0 :(得分:0)

如果您通过地点制作has_many location_comments,那么计划相同会更好。您也可以制作模型方法,如:

def all_comment
   self.location_comments + self. plans_comments
end