Esta pregunta es sobre el nombre de estilo de relaciones polimórficas.Denominación de relaciones polimórficas bien
Mi base de datos tiene tres tipos de personas: una 'Empresa', un Cliente y un Empleado. Cada uno de los tres está en relaciones polimórficas con tareas y eventos, y proyectos.
De acuerdo con las guías de rieles, esto se haría como (he omitido algunas clases por razones de brevedad):
Person.rb
has_many :tasks, :as => :taskable
has_many :events, :as => :eventable
has_many :projects, :as => :projectable # awkward names
Task.rb
belongs_to :taskable, :polymorphic => true
These lead to the rather strange:
@person = @task.taskable
siento que la siguiente sería mucho más gramatical y elegante ... ¿Sería trabajo, y si es así, ¿hay alguna razón por la que las fuentes oficiales usen palabras como projectable
en lugar de palabras como owner
?
Person.rb
has_many :tasks, :as => :owner
has_many :events, :as => :owner
has_many :projects, :as => :owner
Task.rb
belongs_to :owner, :polymorphic => true
This creates the elegant:
@person_1 = @task.owner
@person_2 = @project.owner
Revisé la guía de Rails sobre asociaciones y dice que: 'belongs_to: taskable,: as =>: polymorphic' está mal y debería ser:' belongs_to: taskable,: polymorphic => true'. – jdoe
@jdoe - He corregido el código para reflejar eso. Gracias por revisar. – sscirrus