2010-06-08 3 views
0

나는 컬렉션 선택 항목 인 여러 필드가있는 하나의 데이터 모델이있는 레일즈 프로젝트를 개발 중입니다. 이러한 컬렉션 선택 필드를 모두 나타내는 또 다른 모델을 만들고 싶습니다. 예를 들어, 주 데이터 모델에는 카운티, 카테고리 및 분류에 대한 세 개의 콜렉션 선택 필드가 있습니다. 이를 세 개의 개별 데이터 모델로 분리 할 수 ​​있지만 모두 동일한 특성을 공유하므로 중복되는 것 같습니다. 그들은 유형과 가치가 있습니다. 예를 들어, 카운티는 카운티이고 소노마는 카테고리에 카테고리 유형이 있고 와이너리에 가치가 있다고 가정 할 때 가치가 있습니다. Drupal을 사용한 적이 있다면 기본적으로 분류 기능의 동작을 찾고 있습니다.여러 필드를 표현하는 레일 모델

내 딜레마가 나타납니다.이 필드를 세 개의 별도 필드로 분리해야하지만 데이터 구조는 매우 비슷합니다. 모든 제안은 으로 크게입니다.

답변

1

single-table inheritance의 경우는 매우 적합합니다. 너의 문제는 그것을 위해 비명을 지르고있다.

+0

그래서 기본적으로 기본 모델을 만든 다음 각 데이터 형식에 대해 별도의 모델을 만들어 해당 모델이 내 기본 모델에서 상속 받도록해야합니다. 그건 상당히 논리적 인 것 같습니다. –

+0

그래,베이스 모델에 문자열 인'type' 속성을 추가합니다.이 모델에서는 레일스가 데이터베이스에서 끌어 올 때 해당 행을 바꿀 올바른 클래스를 저장합니다. – x1a4

+0

좋아, 나는 그것을 대부분의 부분에 대한 설정을 가지고 있다고 생각하지만 내가 값을 표시하려고 할 때 실제 값이 아닌 ID를 보여준다. 값의 id 대신 저장된 값에 액세스 할 수 있도록하기 위해해야 ​​할 일이 있습니까? –