[Catalyst] Getting hashref instead of value

Kenneth S Mclane ksmclane at us.ibm.com
Tue May 8 15:13:28 GMT 2012


I am having a problem with my code and I cannot figure out why it is doing 
what it is doing. I have this sub:

sub list :Local {
        my ($self, $c, $page) = @_;
        $page = $c->req->param('page') || 1;
        my $rs = $c->model('ORANGES::Account')->search({}, { 
                join => 'progress',
                '+select' => ['progress.percent_complete'],
                '+as' => ['progress.percent_complete'],
                join => 'compliance',
                '+select' => ['compliance.percent_compliant'],
                '+as' => ['compliance.percent_compliant'],
                join => 'department_id',
                '+select' => ['department_id.department_id'],
                '+as' => ['department_id.department_id'],
                join => 'metrics',
                '+select' => 
['metrics.num_servers','metrics.num_subsystems'],
                '+as' => ['metrics.num_servers','metrics.num_subsystems'], 
 
                order_by => 'account_code',
                rows => 15,
                page => $page,
         });
        $c->stash(accounts => $rs);
        $c->stash(pager => $rs->pager());
        $c->stash->{'template'}=>'accountview/list';
 
}
Which I have tried in several different ways to fix this problem, but none 
have worked so far. In my template file all my fields come up with the 
valyes expected, except, I am trying to use the account_id field value as 
part of a uri to take the user to a details page for the row. Where I am 
expecting a uri such as 'http://127.0.0.1:3000/accountdetails/detail/170' 
I instead get a uri like this:

http://127.0.0.1:3000/accountdetails/detail/dbms::Model::ORANGES::Account=HASH%280x5496460%29

This used to work when I was using a view as the basis for my list page. 

When I run the page I can see in the sub-queries that it runs that it has 
the "account_id" value as it uses it, but when I try to access it in my 
template I get the hash ref. None of the other fields do this. 

one of the sub queries using the account_id value:
SELECT me.account_id, me.account_code, me.percent_compliant FROM 
HCDB_TEST.COMPLIANCE me WHERE ( me.account_id = ? ): '321'


My template that cretaes the uri:

<td><a href="[% c.uri_for('/accountdetails/detail/') %][% 
account.account_id %]">[% account.account_code %]</a></td>

If someone could point me in the right direction, Ive been fighting this 
for days.

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.scsys.co.uk/pipermail/catalyst/attachments/20120508/51547c3b/attachment.htm


More information about the Catalyst mailing list