[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