У меня есть родительские / дочерние отношения в моей схеме. Я хотел бы использовать очень похожий код для изменения существующего родителя, чтобы создать нового. В случае редактирования легко найти детей:
my $parent = $resultset->find($parent_id);
my @children = $parent->children->all
Однако в новом случае происходит нечто странное:
my $parent = $resultset->new_result({});
my @children = $parent->children->all;
Я ожидал, что @children
будет пустым, но вместо этого я вернул всех детей, независимо от родителя.
Я могу сделать что-то подобное (для каждого средства доступа к связанной записи, рвота ):
sub children {
my $self = shift;
my $res = $self->next::method(@_);
my $parent_no = $self->get_column('parent_no');
defined $parent_no ? $res : $res->search({1 => 2});
}
Пожалуйста, скажите мне правильный способ сделать это, поскольку выше не должно быть.
версия: 0.08010, потому что это то, что есть в Debian Lenny (и на чем работают наши рабочие серверы)