2012-01-06 2 views
0

Devise가 관리하는 사용자가있는 곳에 응용 프로그램이 있습니다. 응용 프로그램의 실제 사용자는 사람들을 "친구"로 추가하고 다른 하나는 "직원"이라고 부를 수 있습니다. "친구"와 "근로자"는 하루 종일 User의 모든 유형입니다.Rails 여러 유형의 사용자 (예 : STI 일 가능성이 있습니까?)?

캐치 (catch)는 사용자가 시스템에서 "친구"와 "작업자"인 한 사람 (사용자)을 가질 필요가 있다는 것입니다. 또한 고유 ID (이 경우 휴대 전화 번호)로 사용자 중복 방지가 필요합니다. 특정 사용자가 다른 사용자를 "친구"로 추가 한 다음이어서 "작업자"로 추가하는 경우 (예 : 시스템의 새 사용자가 아닌 일종의 연관성)

나는 이것을 전통적인 의미로 어떻게 처리 할 수 ​​있을지 알고 있지만 레일에서 이것을 처리하기 위해 STI 또는 다형성 연관이있는 영리한 방법이 있다고 확신한다.

의견이 있으십니까? 다양한 사용자 유형이 모두 사실상 동일한 필드 (또는 그럴 것)와 관련되어 있음을 알 수 있습니다. 즉, 매우 단순한 ID, 이름, 모바일 등입니다.

트릭은 사용자가 할 수 있어야한다는 것입니다. "친구"또는 "근로자"유형 중 하나 또는 모두를 가지고 있고, 이들 각각의 유형은 그들과 관련된 다른 두 가지의 조합을 가질 수 있어야합니다.

답변

1

누군가가 친구인지 아니면 작업자가 두 사람 사이의 조인 모델의 속성이 될지는 다른 사람의 속성이 아니라 내게 들립니다.

그런 식으로 한 사람이 한 사람과 다른 사람의 친구가 될 수 있습니다.

+0

아마도 내 설명이 충분하지 않았을 것 같습니다. 실제 시나리오는 다음과 같습니다. –

+0

사용자는 Devise에서 관리합니다. 나는 부모 인 사용자, 다른 부모 (또는 "친구") 인 사용자 및 베이비 시터 인 사용자가 있습니다. 사용자 (부모)는 많은 친구와 많은 베이비 시터를 가질 수 있으며, 친구들도 스스로 베이비 시터가 될 수 있습니다. 사용자가 시터 및 친구 목록을 가져올 수 있어야하며 사용자가 이미 시터 또는 친구 (휴대 전화 번호 고유)를 추가하면 시스템이 다른 사용자를 추가하지는 않습니다. , 사용자가 이미 존재하기 때문에 간단히 보모 또는 친구 관계를 설정하십시오. 좀 더 의미가 있습니까? 이것에 대한 어떤 생각? –