Home > Software design >  How to use recursive_update
How to use recursive_update

Time:10-18

I just started to use DBx::Class and begun slightly to understand, but it's complex.

I want to call "recursive_update" but I was not able to manage how I can use it.

If I understand the documentation right, I have to include it in the .../My/Schema.pm which was create by DBIx::Class::Schema::Loader?

__PACKAGE__->load_namespaces(default_resultset_class => ' DBIx::Class::ResultSet::RecursiveUpdate');

When I want to update the data I use the ResultSet with the relationships.

my $result = $schema->resultset('Table')->find($id});
$result->recursive_update({
            'rel_table' => [....),
});

unfortunately I got an error:

Can't locate object method "recursive_update" via package My::Schema::Result::Table"

Where is my fault?

CodePudding user response:

recursive_update has to be called on a ResultSet object, not a Result object.

You might want to add a helper method to your Result base class (if you already have one else create it, as it makes sense for many things) which gets a ResultSet restricted to the Result object it is called on and calls recursive_update on it.

  • Related