[CDBI] Problem using has_many relations under Mason

Victor Danilchenko danilche at cs.umass.edu
Thu Nov 3 14:02:22 GMT 2005

On Thu, 3 Nov 2005, David Baird wrote:

> On 11/3/05, Victor Danilchenko <danilche at cs.umass.edu> wrote:
>>         Hi,
>>         I am using Class::DBI under Mason/mod_perl2, with MySQL and
>> Apache::DBI. I am defining a has_many relationship, but it doesn't work
>> under Mason, though the very same code works fine in a regular perl
>> script running from a shell.
>>         My definitions, in separate files:
>> Ask::History->has_a( user => 'Ask::User' );
>> Ask::User->has_many(history => 'Ask::History');
>>         The has_a call defines the corresponding method correctly, but the
>> has_many doesn't -- under Mason. I also tried explicitly specifying the
>> foreign key, but it didn't help. I get the following exception message
>> when trying to call $user_obj->history under Mason:
>> Can't locate object method "history" via package "Ask::User"
>>         The very same code works correctly when I call it from a command-line
>> Perl script.
>>         Does anyone have any idea what could be wrong?
> Is the code setting up the relationships being called in the parent
> process, before Apache forks?

 	After. It's loaded via 'use' from regular run-time Mason 
components, after the Apache stuff is all forked and set up.

 	Also, another has_many relationship in that same module, does 
work under Mason. It was written before i took over the code, but I 
ensured that exactly the same configuration is set up for both 
relationships in each requisite Class::DBI subclass -- that is, there's 
a corresponding has_a and has_many for each relationship.

|  Victor  Danilchenko  +---------------------+
| danilche at cs.umass.edu | He who laughs last, |
|   CSCF   |   5-4231   | thinks slowest.     |

More information about the ClassDBI mailing list