Short version: $userexam->user is defined as Auth::User, but seems like it gets redefined as DB::User somewhere mysteriously.
How can I track that down? Long version: Split database setup: DB is for the application data, Auth is for user data. The userexam table links users to the exams they take. *Schema/DB/Result/UserExam.pm *contains: __PACKAGE__->belongs_to( user => 'Learn::Schema::Auth::Result::User' ); __PACKAGE__->belongs_to( exam => 'Learn::Schema::DB::Result::Exam' ); *Schema/DB/ResultSet/UserExam.pm* contains: sub take { # take the exam my $rs = shift; # Learn::Schema::DB::ResultSet::UserExam object my $user = shift; # Learn::Model::Auth::User object my $exam = shift; # Learn::Model::DB::Exam object ... my $user_exam = $rs->create({ user => $user, exam => $exam, }); } The error it throws at $rs->create() is: DBIx::Class::ResultSource::_resolve_relationship_condition(): Objects supplied as 'foreign_values' (Learn::Model::Auth::User=HASH(0xe022b14)) usually should inherit from the related ResultClass ('Learn::Model::DB::User'), perhaps you've made a mistake invoking the condition resolver? In the schema file ->user is defined as Auth::User. Somehow it gets redefined along the way and Catalyst things it should be DB::User instead?! Grepping for DB.*User (and variations) in schema files brings up DB::UserExams and related info (DB::UserCourse, DB::UserRole, DB::UserAnswer) but no DB::User at all. How could that get redefined? Or is this a symptom of something else? I could use a big clue stick upside the head :/ Thanks! -- "Ask for nothing, and you will receive nothing." -- the folks at Global Degree “The cure to boredom is curiosity. There is no cure for curiosity.” Dorothy Parker Todo
_______________________________________________ List: Catalyst@lists.scsys.co.uk Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/ Dev site: http://dev.catalyst.perl.org/