2011-04-09 7 views
5

Estoy encontrando una buena manera de modelar diferentes tipos de usuarios en el sistema. Para el registro, él/ella puede seleccionar ser un estudiante, un mentor o ambos. Ser un estudiante o un mentor tiene un conjunto diferente de propiedades. El estudiante y el mentor también tendrán un diseño de plantilla de perfil diferente.¿Cómo manejar múltiples tipos de usuario en Rails?

¿Cómo diseñaría sus controladores y modelos para este tipo de problema?

Respuesta

3
  1. me gustaría crear un User que puede contener una clase Mentor y/o una clase Student. De esta manera, sus diferentes propiedades se separan entre sí, mientras que las mismas propiedades permanecen en la clase User.
    En el controlador puede representar una plantilla (o parcial), según la instancia que tenga el usuario. Uno para estudiantes, uno para mentores y uno para ambos.

  2. También se puede utilizar la herencia (User como padre con Mentor, Student y Both como niños). La palabra clave que desea ver aquí es Single Table Inheritance.

Imho el problema es la opción ambas. Es por eso que preferiría la primera solución.

+3

La idea de una subclase de "Ambos" me resulta increíblemente incómoda, a menos que el hecho de que alguien sea de alguna manera cree nuevas propiedades. Definitivamente prefiero tu primera solución. –

Cuestiones relacionadas