Hi, I would like to use DBIx::Class::Helper::ResultSet::Random for Resultsets where the source names are only known at runtime, but I can't get this to work. I only started to learn about DBIC, so please don't be too shocked by the code I have written up so far :) I tried to follow the Synopsis on CPAN for DBIx::Class::Helper::ResultSet::Random module, i.e.
---------quote------- # note that this is normally a component for a ResultSet package MySchema::ResultSet::Bar; use strict; use warnings; use parent 'DBIx::Class::ResultSet'; __PACKAGE__->load_components('Helper::ResultSet::Random'); # in code using resultset: my $random_row = $schema->resultset('Bar')->rand->single; --------end quote----- My DBIC schema is created at runtime using make_schema_at and I tried to retrieve a random record for the source with name T. So the first thing to do was making the rand method available in package DBIC::Schema::ResultSet::T. Note that I do not know the source until runtime, therefore the code is contained in a string to be eval-ed as follows (I added some print statements to check things work as expected): -----start code---- eval <<'END'; package DBIC::Schema::ResultSet::T; use parent "DBIx::Class::ResultSet"; print "now in package ".__PACKAGE__."\n"; __PACKAGE__->load_components("Helper::ResultSet::Random"); my $methods = Class::Inspector->methods("DBIC::Schema::ResultSet::T"); foreach (@{$methods}) { print "found method rand!\n" if /\brand\b/; } END -----end code---- This part seems to work fine. But later on I tried to use the rand function (note that I used an eval here too since I hoped the late evaluation would perhaps help): -----start code---- my $random_row; eval '$random_row = $dbic_schema->resultset("T")->rand->single;'; $error = $@; croak $error if $@; -----end code---- The error message I got was "Can't locate object method "rand" via package "DBIx::Class::ResultSet" at..." Do you know how can I turn $dbic_schema->resultset("T") into an object of type DBIC::Schema::ResultSet::T or if there is a better approach? Thanks & best regards José _______________________________________________ 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/dbix-class@lists.scsys.co.uk