Activerecord-association: crear un nuevo objeto (buscar clase)

Tengo un modelo con una relación y quiero crear una instancia de un nuevo objeto del tipo de relación.

Ejemplo: una persona tiene una empresa y yo tengo un objeto persona: ahora quiero crear un objeto empresa.

La clase del objeto de la compañía se define en la relación, por lo que no creo que deba 'conocer' esa clase, pero ¿debería poder pedirle al objeto persona que me proporcione una nueva instancia de tipo de compañía? Pero no sé cómo.

Esta es, creo, la misma pregunta que Nuevo objeto modelo a través de una asociación, pero estoy usando PHPActiveRecord, y no el rubí.

Razón detrás de esto: tengo una superclase abstractaperson, y dos hijos tienen su propia relación con un tipo de objeto de empresa. Necesito poder instanciar la clase correcta en la persona abstracta.

na solución alternativa es obtenerla directamente de lastatic $has_one matriz:

$class   = $this::$has_one[1]['class_name'];
$company = new $class;

el número codificado, por supuesto, puede eliminarse buscando el nombre de asociación en la matriz, pero eso sigue siendo bastante feo.

Si hay alguien que sabe cómo se implementa esto en Ruby, y cómo difiere la implementación de phpactiverecord, ¿podría obtener algunas ideas a partir de ahí?

Algunas pruebas han revelado que aunque "buscar mi nombre de clase en una matriz" se ve un poco extraño, no tiene ningún impacto en el rendimiento, y en uso es lo suficientemente funcional.

Respuestas a la pregunta(6)

Su respuesta a la pregunta