On 29/01/07, Marc Logghe <[EMAIL PROTECTED]> wrote:


Hi all,
I am lost.
In my conf I have:
# configuration of FormBuilder
Controller::FormBuilder:
    method_name: form
    template_type: Mason
    stash_name: form
    obj_name: fb
    form_suffix: fb
    attr_name: Form
    form_path: __path_to(forms)__

In the mason template:
<% $form->render %>
<%args>
 $form => undef
</%args>

The error I get:
Couldn't render component "/moe/mol_3D_conv_form" - error was "Can't call
method "render" on an undefined value ...
I was convinced that C::C::FormBuilder automagically sets
$c->stash->{<stash_name>}, but it seems not to be the case (btw: calling
$c->stash->{form} gives the same error).
Do you have to assign your fb object manually in the controller ? And if so,
what is the purpose of the 'stash_name' conf setting ??
I am afraid I am missing something teriibly.

I was just looking at this last week, as I was using the code as a
basis for a new controller. I suspect that it's never been tested,
because as far as I can tell, it incorrectly reads the config from the
controller object, rather than the application object.

in sub "new",
 $self->__setup();
should be
 $self->__setup($c);

and in sub "__setup",
   my $self   = shift;
   my $config = $self->config->{'Controller::FormBuilder'} || {};
should be:
   my ( $self, $c ) = @_;
   my $config = $c->config->{'Controller::FormBuilder'} || {};

Cheers,
Carl

_______________________________________________
List: Catalyst@lists.rawmode.org
Listinfo: http://lists.rawmode.org/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.rawmode.org/
Dev site: http://dev.catalyst.perl.org/

Reply via email to