0

This post은 내 문제를 잘 설명하지만이 게시물에 대한 대답은 하위 클래스에 단일 테이블 상속 (STI)을 사용한다고 가정합니다. 내 경우에는 SomeProf의 하위 클래스에는 자체 테이블이 있고 _type 열에는 수퍼 클래스의 클래스 이름이 저장되어 있기 때문에 작동하지 않습니다. 내 SomeDeepProf1 이에 상응하는 self.table_name = 'some_other_table' 선언 한 및 내 동등한 서브 클래스가 SomeProf 매우 다른 특성을 가지고 있기 때문에 나는 STI를 사용하고 싶지 않다.STI가없는 레일스 다형성 연관

이 문제를 해결하는 방법에 대한 제안이 있으십니까?

답변

0

지금 나는 SomeDeepProf1 클래스에서이 문제를 해결하기 위해 다음 해결 방법을 사용하고 있습니다 : 그것은`PROFILE_TYPE 생각 클래스`SomeDeepProf1`의로 before_create :set_poly_type_to_class_name ... def set_poly_type_to_class_name self.profile_type = self.profile.class.name end

+0

불행하게도이 모든 방법을 작동하지 않습니다 ... 그것은 보인다 'SomeProf'이어야하고 SomeDeepProf1이 아니어야합니다. 내 모델에서 has_many :를 통해 'SomeProf' 클래스의 관계를 통해'SomeDeepProf1'에서 has_many :로 관계를 맺으려고하면 쿼리는'[ ""profile_type ","SomeProf "]'가됩니다. 'SomeProf' 대신'SomeDeepProf1'을 확인하기 위해 질의를 어떻게 바꿀 수 있습니까? – ehannes