Activerecord-association: создать новый объект (найти класс)

У меня есть модель с отношением, и я хочу создать новый объект типа отношений.

Пример: у человека есть компания, а у меня есть объект-человек: теперь я хочу создать объект-компанию.

Класс объекта объекта определяется в отношении, поэтому я не думаю, что мне нужно «знать» этот класс, но я должен быть в состоянии попросить объект-лицо предоставить мне новый экземпляр типа компании? Но я не знаю как.

Это, я думаю, тот же вопрос, что иНовая модель объекта через ассоциацию но я пользуюсьPHPActiveRecordи не рубиновый.

Причина этого: у меня есть абстрактный суперклассpersonи двое детей имеют свои собственные отношения с типом объекта компании. Мне нужно иметь возможность создавать правильный класс в абстрактном человеке.

Обходной путь должен получить это непосредственно отstatic $has_one массив:

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

конечно, можно устранить жестко запрограммированное число, выполнив поиск имени ассоциации в массиве, но это все еще довольно уродливо.

Если есть кто-нибудь, кто знает, как это реализовано в Ruby и чем отличается реализация phpactiverecord, я мог бы получить оттуда некоторые идеи?

Некоторое тестирование показало, что, хотя «поиск моего имени класса в массиве» выглядит довольно странно, это никак не влияет на производительность, и при использовании он достаточно функционален.

Ответы на вопрос(3)

Ваш ответ на вопрос