Zbigniew Lukasiak wrote:
On Mon, Feb 25, 2008 at 9:53 PM, Alex Povolotsky <[EMAIL PROTECTED]> wrote:
Hello!

 I've found in archives nearly my case, that passing NULL to Pg is not
 'not passing column at all', so adding a new row with a simple code like
 this

  my $loc = $c->model($self->model_name)->find_or_new({lid => $id});
  if ($form->submitted && $form->validate) {
    # Fill in
 data

    $loc->name($form->field('name'));
    $loc->descr($form->field('descr'));
    $loc->update_or_insert();
    $c->req->redirect($c->uri_for('list'));
  }

 is impossible.

 Maybe someone has found a good way to solve the problem, or at least a
 working workaround?

Just guessing - are you using HTML::FormFu?  HTML::FormFu::Model::DBIC
integrates FormFu with DBIC and works around this problem (by not
using find_or_new nor update_or_create). Personally I would be very
happy to see the debate on using the *_or_* methods for tables with Pg
serial primary keys reopened - but there are workarounds for it.


I'm using FormBuilder.

I've made an UGLY workaround

   if (defined $loc->lid) {
     $loc->name($form->field('name'));
     $loc->descr($form->field('descr'));
     $loc->update();
   } else {
$c->model($self->model_name)->create({ map { $_ => $form->field($_) } qw(name descr)});
   }

But I hate it. Who can fix internal logic of DBIx::Class request builder?...
Alex.

_______________________________________________
List: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[EMAIL PROTECTED]

Reply via email to