2013-06-26 19 views
2

我的Event模型需要有一个自引用连接。每个事件都可以属于另一个事件。所以有一个父母。一个事件不能属于任何其他父母。亲子关系自我加入

我读了the AR docs关于这个问题,但由于某种原因不断困扰我应该在我的模型中使用什么关系。

任何有关使用关系的建议?

+0

你在链接中自我加入的问题是什么? – Matzi

回答

6

怎么样?

belongs_to :parent, :class_name => 'Event', :foreign_key => :parent_id 
has_many :children, :class_name => 'Event' 

注:你将不得不列parent_id添加到事件表

+2

在我的情况下,父母只能有一个孩子,但我发现我必须在'has_one:child,:class_name =>'Event',:foreign_key =>:parent_id'中指定外键以使其工作。 –

+0

我得到了'PG :: UndefinedColumn:ERROR:列events.event_id不存在','LINE 1:SELECT“events”。* FROM“events”WHERE“events”。“event_id”= ...'。我如何让孩子只加入'id'而不是'event_id'? – Meekohi

+0

在'has_many'上使用相同的'foreign_key =>:parent_id'。 – Meekohi

-2

查看以下链接的解决方案。

http://guides.rubyonrails.org/association_basics.html#self-joins 
+0

谢谢,但我已经在我的问题中发布了相同的链接:) –

+1

其确定..我错过了:) –