2014-12-26 2 views
1

내가 두 테이블 사이에 간단한 관계를 정의하는 방법을 이해하는 같은 모델에 더 후 하나의 참조가있는 경우 마이그레이션 수준에서 4.2 외부 키 정의를 레일 Rails 4.2 foreign key여기에서 논의 된 바와 같이

하지만 마이그레이션 할 때 동일한 모델에 대한 여러 참조를 어떻게 정의합니까? 이전 게시물을 사용하여 예를 들어 말 :

add_foreign_key :articles, :authors 

당신은 또한 저자 편집기를 저자에 대한 참조를 모두 가지고 있고, 말을 할 것인지를. 레일의 이전 버전에서 모델이 같은 끝낼 것이다 :

belongs_to :editor, :class_name => "Author", :foreign_key => "editor_id" 

또한 레일 g 발판 수준에서이 문제를 정의하는 구문이 나 난 후 마이그레이션을 수정해야 할 것인가?

답변

1

그냥이 될 것이라고이 작동 한 변화

add_column :articles, :author_id, :integer 
add_column :articles, :editor_id, :integer 
add_foreign_key :articles, :authors 
add_foreign_key :articles, :authors, column: :editor_id, primary_key: "id" 
+0

. authors pk가 "id"이므로 primary_key : "author_id"가 primary_key로 변경되었습니다. "id"가 올바른 일을하는 것처럼 보였습니다. 또한 테이블 정의의 열에 t.references를 사용하여도 괜찮습니다. – boar

+0

Roger that, edited –

관련 문제