2010-07-23 4 views
1

이제 Rails를 시작하고 HABTM을 살펴 보았습니다. 나는 DHH 서적을 읽고 있는데 그가 기사와 사용자라는 두 가지 모델을 가지고 있음을 알았다. 그들은 HABTM 관계가 있습니다. 그러나 나 자신이 articles_users 모델을위한 별도의 마이그레이션을 생성해야하는지, 아니면 레일즈가 나에게 해줄 지 궁금하다.사용자와 기사 연결

그렇다면 새로운 사용자를 생성하여 기사와 연결하면 어떻게됩니까? Rails는 articles_users 테이블에 무엇을 입력해야하는지 즉시 알 수 있습니까?

예 :

u = User.new(:name => "John"); 
a = Article.new(:title =>"Rails"); 

내가 이렇게 #can?

a.user << u 

# 윌 레일즈는 articles_users 테이블에 자동으로 항목을 만듭니다?

나는 레일스가 우리를 위해 테이블을 만드는 것에 관해서 다소 혼란 스럽다.

답변

3

마이그레이션을 통해 수동으로 테이블을 만들어야합니다. 그러나 대부분의 레일 개발자는 HABTM 대신 Has Many Through를 선호합니다. 또 다른 이점은 "조인 모델"을 생성 할 때 레일이 마이그레이션을 수행한다는 것입니다.

+0

방금 ​​언급 한 조인 모델에 대한 script/generate 명령의 예제를 제공 할 수 있습니까? – denniss

+1

try : 스크립트/모델 생성 articles_users article_id : 정수 user_id : 정수 – Brian

+0

Brian이 맞습니다. HMT를 사용하는 또 다른 장점은 나중에 전체 메소드를 추가 할 수 있다는 것입니다. –