2009-09-27 4 views
4

저는 총 루비/레일/AR 멍청 해요. 레일스 방식으로 표현하는 가장 좋은 방법을 찾아 낼 수없는 아주 기본적인 데이터베이스 스키마가 있습니다.ActiveRecord - 자체 참조 연결

Table  Post 
String title, author 
Text  content 
Timestamp posted 
Post  parent 

최상위 게시물에는 부모가 NULL입니다. 모든 응답에는 자연스러운 스레드를 형성하는 것과 같은 하나의 상위가 있습니다.

제목, 저자, 내용 및 게시 된 문제가 없지만 부모 비트가 나를 트립입니다. 어떤 도움, 힌트 또는 제안이 좋을 것입니다!

답변

1

act_as_tree 플러그인을 살펴보면 관계를 관리하는 여러 가지 방법을 제공합니다. Railscasts에는 Tree Based Navigation에 대한 스크린 캐스트가 있습니다.

+0

또한'created_at'라고 부르는 경우'posted' 필드를 사용하는 대신에 레일스는 레코드를 처음 저장할 때 자동으로 현재 시간으로 채 웁니다. – fractious

+0

이것은 나에게 많은 일을 안겨주었습니다 (불행히도/다행스럽게도 ActiveRecord에 대해 더 많이 배우면 기다려야 할 것입니다) – Drew

7

귀하의 Post 모델은 상단이를 선언해야합니다

belongs_to :parent, :class_name => 'Post' 

그런 다음, 마이그레이션을 사용하여 posts 테이블을 업데이트 각 행은 부모 추적 할 수 있도록 : 이제

add_column :posts, :parent_id, :integer 

을 때 @post이라는 Post 개체가 있으면 @post.parent을 사용하여 부모를 참조 할 수 있습니다.

+0

has_many : replies, : classe_name => 일대 다 많은 다른 부분에 대해 'Post'로 간단할까요? – Drew