%# vim:syn=mason % unless ($error) { % if (@ids) { % my $i = 0; % foreach my $id (@ids) { % }
НазваниеУдалить?
<% (ref($list{$id}) && $list{$id}->name) || 'неизвестно' %>
% }
Добавить:
% } else { <% $error %> % } <%args> $object $name => undef $check => undef $prop => {} <%init> my (%list, %sort, $error); # Если оно хранится в поле типа integer[] то нам вернется массив, если в data, то ссылка на массив. # Просекаем фишку my @ids = ref($object->$name) eq 'ARRAY' ? @{ $object->$name } : $object->$name; if ($prop && ref($prop) && ref($prop->{lookup_opts}) eq 'HASH') { my $i = 0; foreach my $obj ($keeper->get_documents(%{$prop->{lookup_opts}}, order => ['name','reverse'])) { $list{$obj->id} = $obj; $sort{$obj->id} = $i++; } } else { $error = 'Похоже неверное описание lookup_opts в документе'; }