Activerecord-association: crie um novo objeto (encontre classe)

Tenho um modelo com uma relação e quero instanciar um novo objeto do tipo relaçõe

Exemplo: uma pessoa tem uma empresa e eu tenho um objeto de pessoa: agora quero criar um objeto de empres

A classe do objeto company é definida na relação, então acho que não preciso 'conhecer' essa classe, mas devo pedir à pessoa-objeto que me forneça uma nova instância do tipo company? Mas não sei como.

Esta é a mesma pergunta que Novo objeto de modelo através de uma associação, mas estou usando PHPActiveRecord, e não o rub

Razão por trás disso: eu tenho uma superclasse abstrataperson e dois filhos têm sua própria relação com um tipo de objeto da empresa. Eu preciso ser capaz de instanciar a classe correta na pessoa abstrata.

Uma solução alternativa é obtê-lo diretamente dostatic $has_one array:

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

claro que o número codificado pode ser eliminado pesquisando o nome da associação na matriz, mas isso ainda é bastante fei

Se alguém souber como isso é implementado no Ruby e como a implementação do phpactiverecord difere, posso obter algumas idéias a partir da

lguns testes revelaram que, embora o "pesquisar meu nome de classe em uma matriz" pareça meio estranho, ele não tem nenhum impacto no desempenho e, em uso, é funcional o suficient

questionAnswers(6)

yourAnswerToTheQuestion