내가 상상 한 상속 문제는 하위 클래스가 수퍼 클래스와 다른 속성을 가지고 있다고 가정합니다. 예를 들어 Person
은 수퍼 클래스 일 수 있으며 Driver
하위 클래스입니다. 여기서 Driver
은 Person
에 모두 license_type
필드가 있습니다.Rails 3.1 테이블 상속없는 모델 상속
약간 다른 질문을하고 있습니다. 나는 수퍼 클래스를 가지고 있는데, Entity
이라고 부르며, Entity
은 object_type
필드를 가지고 어떤 유형의 Entity
인지 설명합니다. 모든 유형에는 동일한 필드가 있지만 각 유형은 약간 다르게 작동합니다. 예를 들어 add
방법은 Entity
유형에 따라 다릅니다.
내 현재 솔루션은 Entity
을 하위 클래스이며, 내가 Entity
를 가져올 때마다 (예를 들어, find()
또는 where(..)
에), 나는 entity = entity.becomes(eval("Entity#{entity.object_type}"))
를 호출합니다. 이것은 추악하고 잘 작동하지 않습니다. 예를 들어 url_for
과 form_for
은 이 아닌 Entity<Type>
이므로 정의되지 않은 메서드를 호출합니다.
URL 상속, 경로, 양식 및 그 밖의 모든 항목이 설명 된대로 작동하도록 테이블 상속없이 모델 상속을 수행하는 방법은 무엇입니까? 그리고 .becomes(..)
으로 전화하는 것을 피할 수있는 방법이 있습니까? 내가하고있는 일은 아주 못생긴 것이다.).