我正在嘗試查找與我的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'。 –