これは学校向けの Rails アプリです。ユーザーアカウントにDeviseを使用しています。これまでのところ、各ユーザーには の が.role
ありadmin
、ユーザーがアプリでアクセスして投稿できるものを制限していますteacher
。student
ログインに使用user.email
しています。これまでのところ、すべてうまくいっています。
兄弟アカウントに問題があることに気付きました。ログインに使用される一意user.email
のアドレスは、実際には保護者の電子メール アドレスです (学生は未成年であるため)。現在、学生である 2 人以上の子供を持つ保護者のアカウントを作成する必要があります。私は明らかにstudent
、子供ごとにアカウントを持ち、同じ電子メールアドレスを使用することはできません。これは、一意でなければならないためです (そして、検証で要件を維持したいのです)。
すでにアプリの大部分が完了していることを考えると、この状況を説明するための適切な DRY 方法は何でしょうか?
このサイトや他のサイトを検索しましたが、この状況を説明するものは実際には見つかりませんでした.
私が考えた1つの方法は、User
モデルの役割を親に変更してから、別のStudent
モデルを持つことです。親の役割を持つユーザーはそれを行うことができますhas_many :students
が、これは私にはうまくいきません。
これに役立つ記事や宝石へのポインタと同様に、一般的なアイデア/概念をいただければ幸いです。