[CDBI] Problem using has_many relations under Mason
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:
>> 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