[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