2010-04-23 2 views
3

У меня есть несколько объектов DBIx :: Class :: Core, которые моделируют различные таблицы базы данных.Вводные отношения в DBIx :: Class

Для некоторых из этих моделей (те, у которых есть столбец «queue»), у меня есть другой класс, вводящий subs (в основном, для «перемещения» объекта модели вдоль его состояний очереди).

Я хотел бы также, что класс впрыснуть has_many отношений ала

class($name)->has_many('queue_history','MySchema::Result::QueueHistory', 
{ 'foreign.record_id'=>'self.id' }, 
{ where => { type => $name }}); 

, но я не могу показаться, чтобы получить отношения, чтобы правильно зарегистрировать (постоянно получает «Нет таких отношений» ошибка - однако, когда вызов метода отношений по источникам возвращает отношение).

Любые подсказки о том, что не так?

+0

нашел решение, по-прежнему любил бы видеть альтернативы! – Carl

ответ

2

После некоторых копаться, следующие работы:

$class = $schema->class($name)->has_many('queue_history','MySchema::Result::QueueHistory', 
{ 'foreign.record_id'=>'self.id' }, 
{ where => { type => $name }}); 

$schema->unregister_source($name); 
$schema->register_class($name,$class); 

Ключа быть методы незарегистрированных/регистров для того, чтобы произвести все необходимые другие методы, которые добавляются при наличии нового has_many отношения.