[Catalyst] Problem with static model in Tutorial::MoreCatalystBasics

Adam Witney awitney at sgul.ac.uk
Wed Mar 11 13:26:36 GMT 2009


On 11 Mar 2009, at 13:10, Tomas Doran wrote:

> Adam Witney wrote:
>> ok, so i posted too soon and have figured out the problem. I need  
>> to add "Result" into the relationships. Does the Tutorial need to  
>> be updated to reflect this? If so i have included below a quick  
>> patch against
>>
>> http://dev.catalyst.perl.org/repos/Catalyst/Catalyst-Manual/5.70/trunk/lib/Catalyst/Manual/Tutorial/MoreCatalystBasics.pod
> Can you re-submit as a unified diff against the base of the Catalyst- 
> Manual distribution? (this makes it much easier for someone to  
> read / apply).

is this what you mean?

--- Catalyst-Manual-5.7018/lib/Catalyst/Manual/Tutorial/ 
MoreCatalystBasics.pod	2009-03-08 23:56:26.000000000 +0000
+++ MoreCatalystBasics.pod	2009-03-11 13:23:00.000000000 +0000
@@ -1105,7 +1105,7 @@
  C<lib/MyApp/Model/DB.pm>.  This file contains a reference to
  C<lib/MyApp/Schema.pm>, so that file is loaded next.  Finally, the
  call to C<load_classes> in C<Schema.pm> will load each of the "result
-class" files from the C<lib/MyApp/Schema> subdirectory.  The end
+class" files from the C<lib/MyApp/Schema/Result> subdirectory.  The end
  result is that Catalyst will dynamically create three table-specific
  Catalyst models every time the application starts (you can see these
  three model files listed in the debug output generated when you launch
@@ -1126,7 +1126,7 @@
  Result Class files. (Note: if you are using a database other than
  SQLite, such as PostgreSQL, then the relationship could have been
  automatically placed in the Result Class files.  If so, you can skip
-this step.)  First edit C<lib/MyApp/Schema/Books.pm> and add the
+this step.)  First edit C<lib/MyApp/Schema/Result/Books.pm> and add the
  following text below the C<# You can replace this text...> comment:

      #
@@ -1138,7 +1138,7 @@
      #     1) Name of relationship, DBIC will create accessor with  
this name
      #     2) Name of the model class referenced by this relationship
      #     3) Column name in *foreign* table (aka, foreign key in  
peer table)
-    __PACKAGE__->has_many(book_authors =>  
'MyApp::Schema::BookAuthors', 'book_id');
+    __PACKAGE__->has_many(book_authors =>  
'MyApp::Schema::Result::BookAuthors', 'book_id');

      # many_to_many():
      #   args:
@@ -1178,7 +1178,7 @@
  Note that you cannot define a C<many_to_many> relationship without
  also having the C<has_many> relationship in place.

-Then edit C<lib/MyApp/Schema/Authors.pm> and add relationship
+Then edit C<lib/MyApp/Schema/Result/Authors.pm> and add relationship
  information as follows (again, be careful to put in above the C<1;>  
but
  below the C<# DO NOT MODIFY THIS OR ANYTHING ABOVE!> comment):

@@ -1191,7 +1191,7 @@
      #     1) Name of relationship, DBIC will create accessor with  
this name
      #     2) Name of the model class referenced by this relationship
      #     3) Column name in *foreign* table (aka, foreign key in  
peer table)
-    __PACKAGE__->has_many(book_author =>  
'MyApp::Schema::BookAuthors', 'author_id');
+    __PACKAGE__->has_many(book_author =>  
'MyApp::Schema::Result::BookAuthors', 'author_id');

      # many_to_many():
      #   args:
@@ -1202,7 +1202,7 @@
      __PACKAGE__->many_to_many(books => 'book_author', 'book');

  Finally, do the same for the "join table,"
-C<lib/MyApp/Schema/BookAuthors.pm>:
+C<lib/MyApp/Schema/Result/BookAuthors.pm>:

      #
      # Set relationships:
@@ -1213,14 +1213,14 @@
      #     1) Name of relationship, DBIC will create accessor with  
this name
      #     2) Name of the model class referenced by this relationship
      #     3) Column name in *this* table
-    __PACKAGE__->belongs_to(book => 'MyApp::Schema::Books', 'book_id');
+    __PACKAGE__->belongs_to(book => 'MyApp::Schema::Result::Books',  
'book_id');

      # belongs_to():
      #   args:
      #     1) Name of relationship, DBIC will create accessor with  
this name
      #     2) Name of the model class referenced by this relationship
      #     3) Column name in *this* table
-    __PACKAGE__->belongs_to(author => 'MyApp::Schema::Authors',  
'author_id');
+    __PACKAGE__->belongs_to(author =>  
'MyApp::Schema::Result::Authors', 'author_id');


  =head2 Run The Application
@@ -1249,7 +1249,7 @@

  Let's add a new column to our book list page that takes advantage of
  the relationship information we manually added to our schema files in
-the previous section.  Edit C<root/src/books/list.tt2> add add the
+the previous section.  Edit C<root/src/books/list.tt2> and add the
  following code below the existing table cell that contains
  C<book.rating> (IOW, add a new table cell below the existing two
  C<E<lt>tdE<gt>> tags but above the closing C<E<lt>/trE<gt>> and




More information about the Catalyst mailing list