2013-08-13 1 views
0

학교용 Rails 앱입니다. 사용자 계정에 대해 Devise를 사용하고 있습니다. 지금까지 각 사용자는 .roleadmin, teacher 또는 student이며 사용자가 앱에서 액세스하고 기여할 수있는 내용을 제한합니다. user.email을 사용하여 로그인했습니다. 지금까지 모든 것이 훌륭하게 작동합니다.Rails 앱에서 여러 계정을 가진 사용자를 처리하는 DRY 방법

이제 형제 계정에 문제가 있음을 알았습니다. 로그인에 사용 된 고유 한 user.email은 실제로 학부모의 이메일 주소입니다 (학생은 미성년자이므로). 이제 학생 인 두 명 이상의 자녀가있는 학부모를 고려해야합니다. 나는 각 어린이에 대해 student 계정을 가질 수없고 고유해야하기 때문에 동일한 이메일 주소를 사용할 수 없습니다 (유효성 검사에서 요구 사항을 유지하기를 원합니다).

내가 이미 응용 프로그램의 큰 척을 감안할 때,이 상황을 설명하는 좋은 DRY 방법은 무엇입니까?

이 사이트 및 다른 사이트를 검색했지만 실제로이 상황을 설명하지 못했습니다. 그때 부모를 User 모델의 역할을 변경하는 것입니다 생각

한 가지 방법은 별도의 Student 모델을 가지고있다. 부모의 역할을 가진 사용자는 has_many :students 일 수 있지만 이것은 나와 잘 어울리지 않습니다.

모든 일반적인 아이디어/개념은 기사 나 보석에 대한 도움말에서 도움이 될 것입니다.

답변

0

가장 좋은 방법인지는 모르겠지만 한 가지 방법은 모든 학생 이메일 주소에 대해 부모 전자 메일 주소의 이름 부분에 형제 고유 식별자를 추가하는 것입니다. "진짜"이메일 주소를 원할 때 벗어날 수있는 방법으로 그렇게 할 수 있습니다. 실제로 이런 종류의 접근법에 대한 선례는 http://www.plankdesign.com/blog/2013/06/testing-infinite-unique-email-addresses-with-gmail/입니다.

+0

재미 있습니다. 그것은 확실히 내 모델을 많이 중단하지 않고 구현하는 것이 쉬울 것이지만 나는 그것이 매우 사용자 친화적 인 모르겠다. 나는 나뭇 가지에 가서 그것을 어떻게 느끼는지 보게 될 것이다. –

+0

전자 메일 생성을위한 몇 가지 추가 코드를 사용하면 주어진 부모의 첫 번째 자식에 대해서는이 작업을 수행하지 않아도됩니다. –

+0

학부모가 2 가지 다른 로그인 자격 증명 집합을 가지고 2 가지 별도 계정에 로그인하도록 제안 하시겠습니까? 이상적으로는 학부모가 로그인하여 모든 자녀에 대한 세부 정보를 하나의 대시 보드에 표시하고 싶습니다. 나는 이것이 부모의 약 10 %에게 영향을 줄 것이라고 충고 받았다. –

관련 문제