Peter Karman wrote on 07/28/2009 07:51 AM:
Amiri Barksdale wrote on 7/27/09 8:46 PM:
On Thu, Jul 16, 2009 at 11:33:38PM -0500, Peter Karman wrote:
| Also, your controller inherits from the base CatalystX::CRUD::Controller, 
which
| doesn't really *do* anything by default. I.e., you need a form handler to
| serialize and validate your model. Look at CatalystX::CRUD::Controller::RHTMLO
| for one example. Or consider writing a controller base class that adapts your
| favorite form handler (HTML::FormFu or Form::Processor or ...).

I am making quite a bit of headway with this, and I have chosen
HTML::FormHandler as...my form handler.

I am having some difficulty integrating the two, though. A controller
and a form that it uses look like this:

http://scsys.co.uk:8001/31717

When I start the server and try to look at ui/crud/creator/list, I get
this error:

Caught exception in ml2::Controller::UI::CRUD::Creator->auto "Attribute
(form) does not pass the type constraint because: Validation failed for
'ml2::Forms::CreatorForm' failed with value ml2=HASH(0xd27cf30) (not isa
ml2::Forms::CreatorForm) at
/home/amiri/mlrepo/lib/perl5/CatalystX/CRUD/Controller.pm line 110

Instead of C::X::CRUD loading the form, it is loading the whole
application class.

Is my controller still misconfigured?

no, it's a bug in the documentation. The default form() method looks like this:

sub form {
    my ( $self, $c ) = @_;
    # ...
}

and so your override needs to expect $c as well.


I should clarify further. Your controller code:

 has 'form' => (
        isa     =>   'ml2::Forms::CreatorForm',
        is      =>   'rw',
        default =>   sub { ml2::Forms::CreatorForm->new },
 );

is moreorless what the base controller does. So by having that 'has' declaration, you break it. Try taking the 'has' declaration out and see if that works.


--
Peter Karman  .  http://peknet.com/  .  [email protected]
gpg key: 37D2 DAA6 3A13 D415 4295  3A69 448F E556 374A 34D9

_______________________________________________
List: [email protected]
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/[email protected]/
Dev site: http://dev.catalyst.perl.org/

Reply via email to