2011-06-15 3 views
2

나는 모델 A : B를 가지고 있는데, has_many 모델 C, 외래 키의 이름은 무엇입니까?모델 A :: B belongs_to foreign_key

Class A::B 
has_many :c 

Class C 
belongs_to :a_b 

데이터베이스 테이블 C에는 a_b_id 열이 있습니다. 이것은 작동하지 않습니다. 내가 무엇을 놓치고 있는지 아는 어떤 생각? :: 나는 혼란 스럽다. 감사!

답변

4

B은 다른 네임 스페이스에 있으므로 클래스 C에 지정해야합니다.

class C < ActiveRecord::Base 
    belongs_to :a_b, :class_name => "A::B" 
end 

당신이 a_b_id하지 b_id을 사용하고 있기 때문에, 당신은 당신이를 지정하는 것을 방지하기 위해이 설정된 다음 사용할 수 있습니다, 또는 A::B

class A::B < ActiveRecord::Base 
    has_many :c, :foreign_key => "a_b_id" 
end 

에 외부 키를 지정해야합니다 0123의 표에 b_id를 필요로 A::B

class C < ActiveRecord::Base 
    belongs_to :b, :class_name => "A::B" 
end 

class A::B < ActiveRecord::Base 
    has_many :c 
end 

이를 외국 키

관련 문제