Почему compojure-app и hiccup не могут импортировать функцию hiccup.form/form-to?

Я использую "lein new compojure-app" для создания веб-проекта, икота уже импортирована в project.clj:

:dependencies [[org.clojure/clojure "1.8.0"]
             [compojure "1.5.2"]
             [hiccup "1.0.5"]

и я могу увидеть файл

Я использую intellij для ide, в home.clj:

(ns ansible.routes.home
(:require [compojure.core :refer :all]
        [ansible.views.layout :as layout]
        [hiccup.form :refer :all]
        ))

но когда пишешь

(form-to [ :post "/"]

Intellij говорит мне form-to can't be resolved, если я использую это:

[hiccup.form :as hf]

затем написать

(hf/

intellij говорит мне, что я могу использовать функцию:group,input-filed,make-id,make-name,with-group, но без form-to, но form-to является функцией в пакете hiccup.form

Как это исправить?

1 ответ

Решение

Как правило, используя :require с :refer :all считается дурным тоном, потому что он может скрывать некоторые функции без вашего ведома.

Проверьте, есть ли другие пространства имен, которые вам нужны в home.clj уже есть функция под названием form-to, Попробуйте использовать что-то вроде:

(ns myapp.routes.home
  (:require [compojure.core :as cc :refer [defroutes GET]]
            [myapp.views.layout :as layout]
            [hiccup.form :as hf]))

(defn home []
  (layout/common [:h1 "Hello World!"]))

(defroutes home-routes
  (GET "/" [] (home)))
Другие вопросы по тегам