On 12/08/2010 15:34, Ronald J Kimball wrote:
On Wed, Aug 11, 2010 at 6:09 PM, Ian Docherty (icydee)
<[email protected]> wrote:
Ignoring for the moment the artists, cds, tracks etc. I could see it
something like the following. (top of my head, first impressions, probably
totally borked)
In your application code.
----
my $factory = MyApp::Business->new({schema => $schema});
my $label = $factory->find_label($id);
$label->set_active;
----
The factory code might have something like the following
----
package MyApp::Business;
use Moose;
has 'schema' => (is => 'ro', required => 1);
sub find_label {
my ($self, $id) = @_;
return $self->schema->resultset('DB::Label')->find($id);
}
----
Your Label class would be something like.
----
package MyApp::Business::Label;
use Moose;
has 'dbic_obj' => (is => 'ro', required => 1);
sub set_active {
my ($self) = @_;
die "Is Readonly" if $self->dbic_obj->is_readonly;
$self->dbic_obj->active( 1 );
$self->dbic_obj->update;
}
Note. The above code is totally untested and likely to be broken and is only
an indication of the general method! Please don't flame me for syntax errors
but feel free to suggest alternative ways of doing this. I am still learning
too!
Please don't consider this a flame. :) I just wanted to point out
that your find_label() method is returning a DBIC row object, but I
presume you intended for it to return a MyApp::Business::Label object.
I believe that would look something like this:
sub find_label {
my ($self, $id) = @_;
return MyApp::Business::Label->new(
dbic_obj => $self->schema->resultset('DB::Label')->find($id)
);
}
(Also untested, etc.)
;) no not a flame, thanks for pointing it out. Although I think I would
probably write using a hash-ref
sub find_label {
my ($self, $id) = @_;
return MyApp::Business::Label->new({
dbic_obj => $self->schema->resultset('DB::Label')->find($id)
});
}
Regards
Ian
_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[email protected]