2010-05-10 6 views
1

간행물 모델을 작성하려고합니다. 출판물에는 여러 명의 작가와 편집자가있을 수 있습니다. 이 같은 테이블 조인 사용하기 때문에동일한 모델의 habtm을 여러 번 사용하십시오

class Publication < ActiveRecord::Base 
    has_and_belongs_to_many :authors, :class_name=>'Person' 
    has_and_belongs_to_many :editors, :class_name=>'Person' 
end 

위의 코드가 작동하지 않습니다 : 한 사람이 하나 개의 출판의 저자와 다른 사람의 편집자, 저자 및 편집자를위한 별도의 모델이라고 할 수 있기 때문에.

을 : join_table : 이의 이름을 지정 지금은 지금은 조인 테이블의 이름을 지정할 수 있지만, API 문서에 경고가 이해되지 않는에 대한 경고이다 어휘 순서 을 기본으로하는 기본값이 원하는 것이 아니면 표를 조인하십시오. 경고 : 테이블 이름 중 하나를 덮어 쓰는 경우, 은 has_and_belongs_to_many 선언이 작동하도록하려면 선언 아래에 반드시 선언해야합니다.

답변

1

그것은 즉, 클래스 출판이 표준 이름의 테이블에 연결되어있는 경우, 예를 들어 "my_publications"

세트 테이블 이름은 작동이에 대한 HABTM 선언 뒤에 넣어해야
class Publication < ActiveRecord::Base 
    set_table_name "my_publication" 
end 

:

class Publication < ActiveRecord::Base 
    has_and_belongs_to_many :authors, :class_name=>'Person' 
    has_and_belongs_to_many :editors, :class_name=>'Person' 
    set_table_name "my_publication" 
end 
1

저는 일반적으로 has_many : through를 사용하려는 경우를 생각합니다.

+0

http://blog.hasmanythrough.com/2006/4/20/many-to-many-dance-off –

관련 문제