我正在尝试查找与我的Person,自加入,记录及其所有子元素相关的所有朋友。获取自加入对象及其子元素上的所有关联对象
这是我试图运行的一个示例。我有一个人的记录,让我们叫它@person
,有4个'孩子'。
这些孩子都有很多朋友。
当我查询@person
时,我希望自己的所有朋友,然后是它下面的四个孩子。
有没有办法做到这一点没有去:friends = @parent.friends + @parent.children.map {|c| c.friends }
?
真的很喜欢用一个数据库查询来做到这一点。我的数据库也是postgresql。
这里是我的记录如何设置的例子。
class Person < ActiveRecord::Base
belongs_to :parent, :class_name => "Person", :foreign_key => "parent_person_id"
has_many :children, :class_name => "Person", :foreign_key => "parent_person_id"
has_many :friends
end
class Friend < ActiveRecord::Base
belongs_to :person
end
对于孩子,foregin键应该是'id'而不是'paren t_person_id' –
@arivarasan - 它的工作原理是如何设置的。我绝对能够找到孩子和记录的父母。我记录中的字段是:'id:integer,parent_genre_id:integer,title:string,created_at:datetime,updated_at:datetime'。 –