[Dbix-class] $self->related_resultset( 'user_role' ) returning App::DB::ResultSet
Francisco Obispo
francisco at obispo.link
Wed Jul 15 22:15:10 GMT 2015
The result of
$self->related_resultset( 'user_role' )
is a App::DB::ResultSet
Since it’s declared as ‘has_many’ you have to either wrap it in a
loop to extract the individual APP::DB::Result::UserRole so you can call
->my_method
(or use ->single)
On 15 Jul 2015, at 15:08, Bill Moseley wrote:
> Interesting problem today. Running 0.082800.
>
> I don't have much to go on here, but maybe someone has seen this
> before.
>
> This line of code in my "User" Result class was throwing an exception.
> It's in a Moose builder:
>
> return $self->related_resultset( 'user_role' )->my_method->count > 0;
>
>
> saying:
>
> Can't locate object method "my_method" via package
> "App::DB::ResultSet"
>
> That method "my_method" is not in App::DB::ResultSet. It is in
> App::DB::ResultSet::UserRole.
> I'm expecting that related_resultset( 'user_role' ) would return
> App::DB::ResultSet::UserRole.
>
> And, well, it does when run outside of mod_perl. And now, after quite
> a
> few Apache restarts and adding some debugging code, it is now
> returning
> App::DB::ResultSet::UserRole.
>
> Has anyone had a case where related_resultset() returns a ResultSet
> object?
>
>
> FWIW, the relationship is defined as so in Result::User:
>
> __PACKAGE__->has_many(
> 'user_role',
> 'App::DB::Result::UserRole',
> { 'foreign.user_id' => 'self.id' },
> );
>
>
>
> --
> Bill Moseley
> moseley at hank.org
> _______________________________________________
> 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
More information about the DBIx-Class
mailing list