[Moscow.pm] Вопрос по DBIx::Class
Alexey Surikov
ksurent на gmail.com
Чт Апр 12 05:56:26 PDT 2012
Есть класс Chapter, который представляет из себя главу книги. В классе,
среди прочих, есть 3 поля с порядковыми номерами глав: текущая, предыдущая
и следующая (ordinal, prev, next).
Хочется при добавлении нового объекта в базу автоматически менять номер
следующей главы для предыдущей (т.е. поставить туда номер только что
созданного объекта).
В коде это выглядит примерно вот так:
Package Chapter;
# ... DBIx::Class stuff
use Class::Method::Modifiers;
after insert => sub {
my $self = shift;
my $prev = $self->result_source_instance->resultset->search({
book_id => $self->book_id,
ordinal => $self->prev,
})->single;
if(defined $prev) {
$prev->next($self->ordinal);
$prev->update;
}
};
При попытке это выполнить получаю:
DBIx::Class::ResultSet::single(): Unable to perform storage-dependent
operations with a detached result source (source '_unnamed_' is not
associated with a schema)
Сталкивался кто–нибудь с этим? Не очень понятно в какую сторону смотреть.
Читал список рассылки dbix-class, там это сообщение упоминается один раз,
но в другом контексте (что–то связанное с сериализацией объектов, чего у
меня нет).
ЗЫ: просто перегружать insert тоже пробовал, толку ноль.
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20120412/67f21100/attachment.html>
Подробная информация о списке рассылки Moscow-pm