Hunchentoot: функция не работает на веб-странице, но отлично работает в слизи.

Я недавно работаю с hunchentoot. В любом случае, я делаю веб-страницу для управления простым списком задач, следуя этому руководству. У меня проблема с определением моей функции deletetodo:

(defun deletetodo (todoid) (setf *todos* (remove (find todoid *todos* :test #'equal :key #'todocid) *todos*)))     

Когда я запускаю (идентификатор удаления) из слизи, он работает отлично, и заметка удаляется.

Но когда я запускаю его с моего сервера hunchertoot, он не возвращает никаких ошибок, но ничего не удаляет! это моя функция для вызова страницы удаления:

(define-url-fn (deleteid)
 (let ((id  (parameter "id")))
  (deletetodo id)
  (redirect "/menu.html")))  

Следующая страница была вызвана с помощью deleteid.html?id=1 , предположим, что 1 является примером. Я попытался отследить запрос, и это абсолютно правильно, и правильный идентификатор отправлен, но deletetodo просто не работает! Любые идеи?


person m-arch    schedule 14.10.2013    source источник


Ответы (1)


Я чувствую себя глупо :) это просто проблема с форматированием, значение идентификатора, отправленное с запросом, имеет строковый формат, но требуется целое число. Таким образом, использование (идентификатор чтения из строки) устраняет проблему.

person m-arch    schedule 15.10.2013