Есть класс Chapter, который представляет из себя главу книги. В классе, среди прочих, есть 3 поля с порядковыми номерами глав: текущая, предыдущая и следующая (ordinal, prev, next).<div>Хочется при добавлении нового объекта в базу автоматически менять номер следующей главы для предыдущей (т.е. поставить туда номер только что созданного объекта).</div>
<div><br></div><div>В коде это выглядит примерно вот так:</div><div><br></div><div>Package Chapter;</div><div><br></div><div># ... DBIx::Class stuff</div><div><br></div><div>use Class::Method::Modifiers;</div><div><br></div>
<div>after insert => sub {</div><div> my $self = shift;</div><div><br></div><div><div> my $prev = $self->result_source_instance->resultset->search({</div><div> book_id => $self->book_id,</div>
<div> ordinal => $self->prev,</div><div> })->single;</div><div> if(defined $prev) {</div><div> $prev->next($self->ordinal);</div><div> $prev->update;</div><div> }</div></div>
<div>};</div><div><br></div><div>При попытке это выполнить получаю:</div><div>DBIx::Class::ResultSet::single(): Unable to perform storage-dependent operations with a detached result source (source '_unnamed_' is not associated with a schema)</div>
<div><br></div><div>Сталкивался кто–нибудь с этим? Не очень понятно в какую сторону смотреть.</div><div>Читал список рассылки dbix-class, там это сообщение упоминается один раз, но в другом контексте (что–то связанное с сериализацией объектов, чего у меня нет).</div>
<div><br></div><div>ЗЫ: просто перегружать insert тоже пробовал, толку ноль.</div>