On Wed, Sep 14, 2011 at 11:44 AM, Roland Philibert <rphilib...@aptina.com>wrote:

> I did try what you suggest as per:
> sub thing_GET {
>
>        my ($self, $c) = @_;
>         $self->status_ok(
>                $c,
>                entity => $rs =
> $c->model('DB::data)->search({},{result_class =>
> 'DBIx::Class::ResultClass::HashRefInflator',})->all
>        );
> }
> ...but the json rest object was showing just the number of row retrieved
> ie: {"rest":80}
>
>
That is not quite what Ian suggested.  Scalar assignment (i.e. $rs =)
provides scalar context to the right-hand side, so you're calling all() in
scalar context, so you get the number of elements.  Also, the assignment to
$rs is misleading, as you're not actually assigning a ResultSet object to
it, but rather the result of calling ->all() on a ResultSet.

Try one of these approaches instead, which all do the same thing in slightly
different ways.  Ian's original suggestion:

@arr = $c->model('DB::data)->search({},{result_class
=> 'DBIx::Class::ResultClass::HashRefInflator',});
...
  entity => \@arr
...

or, with an anonymous array instead of a temporary array variable:

...
  entity => [$c->model('DB::data)->search({},{result_class
=> 'DBIx::Class::ResultClass::HashRefInflator',})]
...

or, assigning the ResultSet to $rs first:

$rs = $c->model('DB::data)->search({},{result_class
=> 'DBIx::Class::ResultClass::HashRefInflator',});
...
  entity => [$rs->all],
...

Ronald
_______________________________________________
List: Catalyst@lists.scsys.co.uk
Listinfo: http://lists.scsys.co.uk/cgi-bin/mailman/listinfo/catalyst
Searchable archive: http://www.mail-archive.com/catalyst@lists.scsys.co.uk/
Dev site: http://dev.catalyst.perl.org/

Reply via email to