Почему 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)))