03 декабря 2011

Common Lisp. cl-closure-templates, postmodern.

Updated 06.12.12

Маленький совет тем, кто сбрасывает вывод postmodern:query в cl-closure-templates. SQL тип NULL postmodern конвертирует в keyword :null, который cl-closure-templates интерпретирует как строку NULL. Для того чтобы вывести вместо NULL пустую строку, достаточно использовать if/then в шаблоне, например так:

....
{if $column}
  {$column}
{/if}
.....

или так

{$column ? $column : ' '}

Вобщем-то :null при исполнении шаблона автоматически вычисляется в false.

Кроме того, если вы передаете (postmodern:query (select 1 as some_column) :alist) в closure-template, то добраться до колонки очень просто. По умолчанию postmodern конвертирует имена столбцов в keyword-ы с преобразованием подчеркивания в дефис, а closure-template в свою очередь camel нотацию преобразует в cl нотацию с дефисами. Итак, если вы используете столбец some_column, то переменная в шаблоне выглядеть будет так: someColumn.

postgres    -> common lisp  -> cl-closure-template
some_column -> :some-column -> someColumn.

Комментариев нет:

Отправить комментарий