On 6/28/07, Philip Dye <[EMAIL PROTECTED]> wrote:
>  Here are two classes, the first works as expected the second fails with the
> listed error message: [...]
>    Can't call method "Id" on unblessed reference at
> .../Rose/DB/Object/MakeMethods/Generic.pm line 3470.

This is a Perl issue, not an RDBO issue.  Example:

    package A;
    sub B { print "B\n" }

    package A::B;
    sub x { print "x\n" }

    package main;
    A::B->x();

If you run that, you get this error:

"Can't call method "x" without a package or object reference at ..."

One way to avoid this is to use lowercase method names, reserving
Title Case for classes only.  In the example above, if package A had a
"sub b { ... }" instead of a "sub B { ... }", it'd work fine.

Quoting the class name in the last line also fixes it:

    'A::B'->x();

and so, changing line 31 of regional-pricing/bug/t/3.fields.t to this:

    my $price = 'Product::Price'->new( Price => 3.95, Region => 'US' ) ;

also fixes your test.  But that's pretty cumbersome and ugly.  Using
lowercase column names (or renaming your classes) seems like a better
solution, IMO.

-John

-------------------------------------------------------------------------
This SF.net email is sponsored by DB2 Express
Download DB2 Express C - the FREE version of DB2 express and take
control of your XML. No limits. Just data. Click to get it now.
http://sourceforge.net/powerbar/db2/
_______________________________________________
Rose-db-object mailing list
Rose-db-object@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/rose-db-object

Reply via email to