J'utilise l'héritage de table unique dans StudentHours et TeacherHours, qui ont une heure parente.Héritage du contrôleur dans Ruby on Rails - accès au modèle et au contrôleur dans la classe parente
Le code du modèle est la plupart du temps dans hour.rb, et très peu student_hour.rb et teacher_hour.rb
Maintenant, je me suis rendu compte que la plupart du code du contrôleur est Duplicate, donc je l'ai créé un hours_controller est le parent de students_controller et teachers_controller. Parce que le hours_controller instancier des objets modèles tels que TeacherHours.new j'ai créé un accesseur dans les classes d'enfants tels que:
def MyModel
@mymodel = "TeacherHours"
end
... alors le hours_controller appelle simplement MyModel.new
De temps en temps il y a d'autres modèles qui sont référencés et parfois j'appelle même 'render' sur une vue donc j'ai fait des accesseurs dans les classes enfants pour ceux-là aussi.
Je ne trouve pas d'exemple de ce que font les autres. Alors, est-ce mauvais pour une raison ou une autre? Pourquoi avez-vous besoin d'utiliser l'héritage pour le comportement de ces modèles?
Je n'en ai pas besoin, mais j'ai choisi de le faire car toutes les méthodes seraient sinon dupliquées à la fois dans les contrôleurs et dans les modèles. – 99miles
Une alternative pourrait être d'aplatir l'héritage de votre modèle et d'utiliser un seul contrôleur. Quelle est la valeur d'avoir les deux sous-types de modèles? Vous pouvez probablement obtenir le même comportement sans la complexité de l'utilisation de l'héritage. – Winfield