질문
나는 권한 부여 및 인증 논리를 가진 사용자 모델을 가지고 있습니다.레일에서 다른 사용자를 모델링하는 방법
이제 세 가지 유형의 사용자가 있음을 알았습니다. 각자 다른 정보를 저장하고 싶습니다.
레일스에서 이것을 처리하는 가장 좋은 방법은 무엇입니까? 현재 기록에 따라
생각
내가 STI 보았지만 내가 읽은 것과 내 데이터베이스에 NULL 필드를 많이하게 될 겁니다 있기 때문에 부적절하다고 생각했습니다.
이상적으로 저는 세 가지 사용자 유형 각각에 대한 인증/권한 부여 논리를 복제하지 않는 것이 좋습니다.
각 사용자는 응용 프로그램 내에서 다른 기능을 사용하게됩니다.
모델/db에 user_type 속성을 추가 한 다음 사용하도록 허용 된 활동/기능으로 user_types를 매핑하는 모델을 설정해야합니다. – rnirnber
그러나 이것은 여전히 사용자 테이블이 하나 있다는 것을 의미합니까? 그래서 하나의 사용자 (유형 A)와 이름, 이메일, 주소, dob, 다른 이름 (유형 B)의 이름과 이메일을 저장하려면 모든 사용자 유형에 대해 많은 null 필드가 필요합니다. – cmd
일반 필드를 설정해야합니다. 레일즈에서는 액티브 레코드의 serialize/deserialize 함수가 도움이 될 것입니다. 배열과 같은 더 나은 데이터 구조가 있습니다. 그러나 쉽게하기 위해 이걸 가지고가 봅시다. models/user.rb에서 텍스트 필드를 설정하고 사용자 정의/변수 옵션을 단일 필드에 저장합니다. 어쩌면 user_profile이라고 부르세요. 해당 열에 대한 하나의 레코드는 "dob : 031388 \ nphone : 8312229999 \ nemail : [email protected]"과 같은 모양 일 수 있으며 "\ n"문자 – rnirnber